2009-06-19 6 views
24

Que signifient ElapsedTicks et Elapsed.Ticks dans la classe StopWatch? Quand la signification pourrait-elle être différente de celle voulue?StopWatch.ElapsedTicks et StopWatch.Elapsed.Ticks toujours les mêmes?

+0

+ 1 partage de vos connaissances de cette façon est la bienvenue – tanascius

+0

vous êtes autorisé à poser une question et y répondre vous-même - et je pense qu'il ya un badge pour vous aussi :) –

+1

Merci. Je viens de le remarquer moi-même. En cherchant, j'ai trouvé ce post. –

Répondre

21

Je viens de découvrir que ElapsedTicks dans la classe StopWatch ne signifie pas vrai "tiques" si StopWatch.isHighResolution est vrai

Note (if isHighResolution is True):

tiques Chronomètre sont différentes de DateTime .. ::. Tiques. Chaque tick dans la valeur DateTime .. ::. Ticks représente un intervalle de 100 nanosecondes. Chaque tick dans la valeur ElapsedTicks représente l'intervalle de temps égal à 1 seconde divisé par la fréquence.

Vous pouvez faire le calcul ci-dessus ou il semble que vous pouvez utiliser StopWatch.Elapsed.Ticks au lieu de StopWatch.ElapsedTicks

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

Bien sûr, cela ne peut pas exactement égale en raison de l'arrondissement, Les ticks Stopwatch et les ticks TimeSpan sont mesurés en différentes unités. En outre, dans le cas où vous avez exécuté le code ci-dessus littéralement, il est évident que certaines coches se seraient écoulées entre la prise de la valeur de Elapsed.Ticks et celle de ElapsedTicks.

Questions connexes