我正在尝试使用Stopwatch
但始终获得比实际经过时间低约 3.1 倍的时间来测量经过的时间。我无法解释为什么会发生这种情况,代码非常简单。我已经在 3 台机器上尝试了代码并获得了相同的结果(尽管硬件和软件几乎相同)。
i5-2500k、i5-2500、Windows 7 64 位、Windows 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倍。
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