Dauer der benötigten Ladezeit anzeigen!?

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von AliveDevil.

    Dauer der benötigten Ladezeit anzeigen!?

    Hallo,

    ich bin nun schon seit ca. 2-3 Wochen dabei in Visual Basic - Anwendungen zu schreiben etc.
    Nun habe ich mal eine kleine Frage, und der code dafür ist bestimmt smart, aber ich komme einfach nicht dahinter.

    Wie programmiere ich eine Anzeige in der steht, wielange die Anwendung gebraucht hat um zu starten.
    Also sobald ich die Anwendung.exe starte soll in einem Label beispielsweise stehen: [431ms] solange hätte
    die Anwendung gebraucht bis sie voll Einsatzfähig ist, sprich sobald Sie gestartet wurde!

    Ich weiß das dürfte eigentlich ganz leicht sein, hoffe ich zumindest aber ich komme einfach nicht dahiner! :(
    Es wäre echt schön wenn mir jemand auf die schnellste Weise Helfen könnte, und mir das zusätzlich noch erklärt
    was dort gemacht wird.

    Bitte entschuldigt meine Rechtschreibung, im Internet achte ich nicht immer wirklich auf die genauigkeit meiner Wörter.
    Ich bedanke mich schon mal im vorraus, Pringles!

    Lengnde:
    [ms] = Millisekunden
    Du solltest als erste Anweisung in der Main-Methode eine Instanz der Klasse Stopwatch erzeugen und diese starten. Wenn alles geladen wurde beendest du sie und zeigst die Zeit an.
    Bitte beachte dabei, dass diese Methode nicht exakt ist, da du erst ab der ersten Anweisung in Main messen kannst, was aber bei weitem nicht die erste Programmanweisung ist (vorher lädt das .NET Framework, was an sich schon etwas dauern kann. Dann geht auch nochmal etwas flöten, weil du eine Stopwatch-Instanz erstellen musst).

    Viele Grüße, Phil.
    Gut danke erstmal YaPhi1l.

    Ich habe mir einen code aus dem Internet geholt, weiß nun aber nicht wie ich die Zeit in meine 3. Form unter mein Label9 bekomme.

    VB.NET-Quellcode

    1. Option Explicit On
    2. Imports System.Data
    3. Imports Microsoft.VisualBasic
    4. Imports System.Collections
    5. Imports System.Diagnostics
    6. Module zeitAnzeige
    7. Sub Main()
    8. Dim SW As Stopwatch = Stopwatch.StartNew
    9. System.Threading.Thread.Sleep(1000)
    10. SW.Stop()
    11. ' Im beispiel wurde anscheind mit einer Konsole gearbeitet, möchte es aber in einer Form haben.
    12. ' Ab hier weiß ich nun nicht mehr weiter, wie bekomme ich das nun in meine Form, bzw. in mein Label9?
    13. End Sub
    14. End Module


    So etwas kann ich leider noch nicht, ich habe nicht immer Zeit zum programmieren. Aber ich lerne so gut es geht!
    Mmm, ich weiß ja leider noch nicht mal ob das überhaupt richtig ist was ich da habe um die benötigte Ladezeit anzuzeigen.
    - Pringles.

    Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „Pringles“ ()

    gib mal nach dem Sw.Stop folgendes ein: Label9.Text = Sw , wenn Label9 aber auch in Form3 ist. Weiss jzt nicht ob es klappt bin am iphone on, wenn nicht dann sorry. nochwas, durch copy und paste lernst du nichts wenn du es nicht verstehst was dahinter steckt! mfg // edit , kann das kommentar da nich lesen mit iphone..
    Ich danke dir vielmals, ich habe aber mittlerweile schon eine andere möglichkeit gefunden.

    VB.NET-Quellcode

    1. Public Class myapp
    2. Dim ST As DateTime
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Timer1.Start()
    5. ST = DateTime.Now()
    6. End Sub
    7. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    8. Dim time As TimeSpan = DateTime.Now.Subtract(ST)
    9. Label1.Text = time.Seconds.ToString & "." & time.Milliseconds & " ms"
    10. Timer1.Stop()
    11. End Sub
    12. End Class


    So habe ich es irgendwie geschafft, leider nicht perfekt. Und brauchte eine kleine Starthilfe. :)
    Danke nochmal an alle die mir sehr schnell geholfen haben, Pringles. | Gute nacht ^^

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Pringles“ ()

    du machst eine Vars.vb und schreibst das rein:

    VB.NET-Quellcode

    1. Dim mystopwatch As New StopWatch

    Dann gehste in MyProject und dann Anwendungs
    und schreibst das rein:

    VB.NET-Quellcode

    1. mystopwatch.Reset()
    2. mystopwatch.Start()


    am ende deiner Main Method..schreibste mystopwatch.Stop()
    und dann Form1.Label3.Text = mystopwatch.Elapsed

    Für weitere Informationen:
    msdn.microsoft.com/en-us/libra…iagnostics.stopwatch.aspx
    odr auf deutsch
    msdn.microsoft.com/de/library/…iagnostics.stopwatch.aspx

    So..MSDN FTW!
    Lerne MSDN zu benutzen
    Vorschlag zu einem funktionierenden Ablauf:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim mystopwatch As Stopwatch
    3. Public Sub New()
    4. mystopwatch = New Stopwatch
    5. mystopwatch.Reset()
    6. mystopwatch.Start()
    7. InitializeComponent()
    8. End Sub
    9. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    10. mystopwatch.Stop()
    11. Label1.Text = mystopwatch.ElapsedMilliseconds.ToString & " ms"
    12. End Sub
    13. End Class
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!