Ich muss eine Ereigniszeit genau messen (nehmen Sie die Zeit zwischen zwei Klicks an). Ich benutzte einen Timer und setze das Intervall auf "1" und einen Zähler im Tick-Event. Das Problem ist, da es viele Zeilen in meinem Code gibt, dass das Tick-Ereignis nicht wirklich alle 1 ms passiert (vielleicht alle 8 ms oder mehr). Gibt es eine Möglichkeit, einen Thread zu verwenden und einen 1ms-Timer unabhängig davon auszuführen?So messen Sie die Zeit in Millisekunden-Genauigkeit nach Thread
0
A
Antwort
1
//start
long start = DateTime.Now.Ticks;
//to do something
//...
//end
long end = DateTime.Now.Ticks;
long delta = end - start;
+2
Messen direkt mit StopWatch ist viel besser. –
+0
Ich möchte Sie sehen Stoppuhr Klasse Quellcode http://referencesource.microsoft.com/#System/services/monitoring/system/diagnosticts/Stopwatch.cs,ceb0ba9cc88de82e –
+0
hmmm Interessante .. –
1
var stopWatch = Stopwatch.StartNew();
// do something
stopWatch.Stop();
Console.WriteLine(stopWatch.ElapsedMilliseconds);
Ich bezweifle, dass Sie das Niveau der Genauigkeit erhalten werden. Mit 8ms solltest du dich freuen. – rene
relevant: http://StackOverflow.com/A/28648/578411 aber es gibt mehr zu finden, wenn Sie nach 'high precision timer [C#]' – rene
suchen Normalerweise, wenn Sie * ein Intervall * messen müssen, würden Sie a verwenden 'Stoppuhr' kein' Timer'. –