2012-10-29 2 views
1

Stopwatch을 사용하여 경과 시간을 측정하려하지만 실제 경과 시간보다 약 3.1 배 낮은 시간을 일관되게 얻으려고합니다. 왜 이런 일이 생기는지 내 손가락을 놓을 수는 없지만 코드는 간단합니다. 난 3 기계에서 코드를 시도하고 거의 동일한 하드웨어 및 소프트웨어와 같은 결과를 얻고있다.System.Diagnostics.Stopwatch timer off 3의 계수

i5-2500k, i5-2500, 윈도우 7 64 비트, 윈도우 8 RTM 64 비트

Stopwatch sw = new Stopwatch(); 
sw.Restart(); 
DateTime start = DateTime.Now; 

for (int i = 0; i < 5; i++) 
{ 
    Thread.Sleep(1000); 
} 

DateTime end = DateTime.Now; 
sw.Stop(); 

Console.WriteLine("Time passed: " + StringFormatter.ToShortString(sw)); 
Console.WriteLine("Time passed: " + StringFormatter.ToShortString(end - start)); 

결과는 지속적으로 떨어져 ~ 3.1 배이다. 10 초 지연에 대한

Time passed: 00:00:01.6347 
Time passed: 00:00:05.0600 

:

Time passed: 00:00:03.2358 
Time passed: 00:00:10.0100 
+0

'StringFormatter'이란 무엇입니까? –

답변

0

좋아,이 바보였다. Stopwatch.ElapsedTicks은 시간대로 사용되었습니다. 인쇄 논리에 맞게 해상도를 조정해야했습니다.