Stopwatch Zeiten vergleichen

  • C#
  • .NET 4.5

SSL ist deaktiviert! Aktivieren Sie SSL für diese Sitzung, um eine sichere Verbindung herzustellen.

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

    Stopwatch Zeiten vergleichen

    Hallo,

    Ich hab ein kleines Problem:
    Ich habe eine Timer programmiert. Dafür benutze ich die Stopwatch Klasse... Diese Zeiten schreibe ich dann mit einem Timer in ein Label. Dafür mache ich aus den Werten der Stopwatch einen String der so aussieht: 00:00:00:00 also

    Stunden:Minuten:Sekunden:Millisekunden

    Jetzt möchte ich an bestimmten Zeiten etwas ausführen.. Dafür vergleiche ich den Text im Label mit z.B. "00:10:00:00" und führe dann etwas aus... Das passiert im Timer.Tick event welches auch den Text des Labels aktualisiert.

    Mein Problem ist, dass komischerweise manchmal diese Abfrage (den Vergleich der beiden Strings) false zurück gibt bzw. Die Zeit 00:10:00:00 wird nicht in das Label geschrieben, da die Stopwatch schneller ist als der Vergleich.

    --> Somit werden nicht alle Zeiten in das Label geschrieben... und ich bekomme so z.B. bei 00:10:00:00 nicht true zurück obwohl die Zeit ja eigentlich durchgelaufen ist...

    Meine Frage also: Wie kann ich also jede einzelne Zeit der Stopwatch überprüfen ohne das Zeiten übersprungen werden?
    Kurze Frage wieso vergleicht du die Strings ?

    Du bekommst doch beim Stopwatch Elapsed den aktuellen Laufwert raus.

    Prüfe dann einfach ob AktuellerLaufwert (Der kommt ja schon als TimeSpan Structure soweit ich weiß.) größer als 10Minuten : Dann hast du das gleiche ergebnis ohne irgendwelche Strings zu vergleichen.
    (Gibt Extra kein Code da du ja nichts zum verbessern oder so gepostet hast ;) )
    Grüße
    Grüße , xChRoNiKx
    Danke für die Antwort :)

    Und was ist wenn ich eine individuelle List habe, die ein User angelegt hat? Und diese Zeiten vergleichen möchte? Dann muss ich ja jede angelegte Zeit durch gehen und diese mit der aktuellen Zeit vergleichen...
    Hab ich dann nicht wieder das selbe Problem da die Stopwatch schon wieder schneller war?

    Wolf066 schrieb:

    Jetzt möchte ich an bestimmten Zeiten etwas ausführen
    Meinst Du zu bestimmten Uhrzeiten oder in bestimmten Intervallen?
    Mach das mit nem Timer und teste, ob die aktuelle Zeit größer/gleich der Zielzeit ist.
    Dass Du den Zeitpunkt exakt erwischst ist praktisch nicht möglich.
    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).
    VB-Fragen über PN / Konversation werden ignoriert!