2009-06-19 18 views
24

Cosa significa ElapsedTicks e Elapsed.Ticks nella classe StopWatch? Quando potrebbe il significato essere diverso dal previsto?StopWatch.ElapsedTicks e StopWatch.Elapsed.Ticks sono sempre gli stessi?

+0

+1 condividendo le tue conoscenze in questo modo è molto gradito – tanascius

+0

ti è permesso fare una domanda e rispondi tu stesso - e penso che ci sia anche un distintivo per te :) –

+1

Grazie. L'ho notato io stesso. Cercandolo, ho trovato questo post. –

risposta

21

ho appena scoperto che ElapsedTicks nella classe cronometro non significa reale "zecche", se StopWatch.isHighResolution è True

Nota (if isHighResolution is True):

zecche cronometro sono diversi da DateTime .. ::. Le zecche. Ogni segno di spunta nel valore DateTime .. ::. Ticks rappresenta un intervallo di 100 nanosecondi. Ogni segno di spunta nel valore ElapsedTicks rappresenta l'intervallo di tempo uguale a 1 secondo diviso per la frequenza.

È possibile fare la matematica al di sopra o sembrare è possibile utilizzare StopWatch.Elapsed.Ticks invece di StopWatch.ElapsedTicks

10
Elapsed.Ticks/TimeSpan.TicksPerSecond == ElapsedTicks/Stopwatch.Frequency 

Naturalmente questo non può esattamente uguale a causa degli arrotondamenti, come i tick del cronometro e i tick del TimeSpan sono misurati in unità diverse. Inoltre, nel caso in cui abbiate eseguito il codice di cui sopra letteralmente, ovviamente alcune tacchebbero tra il prendere il valore di Elapsed.Ticks e quello di ElapsedTicks.

Problemi correlati