在我的电脑上,秒表的返回值太低了.例如,我指定时为200毫秒Thread.Sleep(1000).该程序应该等待1秒钟.我也测试过ManualResetEvent.WaitOne(1000)并得到了相同的结果.框架2.0和3.0都给出了这种奇怪的行为.我正在运行带有.NET Framework 3.5 SP1的Windows XP SP3.
这是我的测试结果(下面的代码):
1000 ms for DateTime.Now.Ticks
0201 ms for Stopwatch.ElapsedTicks
0142 ms for Stopwatch.ElapsedMilliseconds
0139 ms for Stopwatch.ElapsedTicks after Reset
0264 ms for Stopwatch.ElapsedTicks setting ThreadAffinity
0151 ms for Stopwatch.ElapsedTicks setting ProcessorAffinity (and more)
0371 ms for Stopwatch.ElapsedTicks with Syncronized object
Done!
Run Code Online (Sandbox Code Playgroud)
// Program.cs文件
class Program
{
static void Main(string[] args)
{
StopWatchTest.Go();
Console.WriteLine("Done!");
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
// StopWatchTest.cs类
internal static class StopWatchTest
{
public const int SleepTime = 1000;
public …Run Code Online (Sandbox Code Playgroud)