を使用して経過時間を測定しようとしてStopwatch
いますが、実際の経過時間よりも約3.1倍短い時間を一貫して取得しています。なぜこれが起こるのか、私は指を置くことができません。コードは非常に単純です。私は3台のマシンでコードを試しましたが、同じ結果が得られました(ただし、ハードウェアとソフトウェアはほぼ同じです)。
i5-2500k、i5-2500、Windows 7 64ビット、Windows 8RTM64ビット
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倍オフです。
Time passed: 00:00:01.6347
Time passed: 00:00:05.0600
10秒の遅延の場合:
Time passed: 00:00:03.2358
Time passed: 00:00:10.0100