2013-03-30 5 views
13

Kann ich die verstrichene Zeit seit dem Aufruf von Start an einer Stoppuhr unter Verwendung von ElapsedMilliseconds ohne Aufruf von Stop abrufen? Ich habe viel im Internet gesucht, aber nur Beispiele gesehen, wo ElapsedMilliseconds nach Stop aufgerufen wird. Ist dieser Wert bei einem Anruf auf Stop oder ist es immer richtig?Soll ich Stop aufrufen, bevor ElapsedMilliseconds gelesen wird?

Antwort

26

Sie können die Eigenschaften Elapsed, ElapsedMilliseconds und ElapsedTicks abfragen, während die Stoppuhr-Instanz ausgeführt oder gestoppt wird. Die Eigenschaften für die verstrichene Zeit steigen stetig an, während die Stoppuhr läuft. Sie bleiben konstant, wenn die Instanz gestoppt wird.

-Von http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.elapsedmilliseconds.aspx

+0

Danke! Ich kann mir nicht vorstellen, wie ich das vermisst habe! –

+0

Ich sehe "interessante" (um es schön zu sagen) Situationen, in denen "watch.Elapsed.Ticks! = Watch.ElapsedTicks" ist, so dass in der Stoppuhr seltsame Dinge passieren. Vorbehaltsteller Ich vermute, dass ich seit ElapsedTicks eine Eigenschaft und keine Methode vermutet habe. Während ich mich beschwere, ist Stoppuhr nicht zuverlässig auf Multi-Core-Maschinen. – Adam

+0

Die Anweisung ruft die Uhrzeit zweimal ab. Wenn die Stoppuhr läuft, kann sie natürlich zwischen diesen beiden Abfragen wechseln. [Wenn du das nach dem Anhalten der Uhr siehst, dann gebe ich dir "komisch" zu. –