C# 在c sharp中使用QueryPerformanceCounter,但未获得精确结果
我使用QueryPerformanceCounter在我的c sharp程序中获得精确的计时行为。但是,如果我使用thread.sleep测量计时,它不会给出预期的结果。 我遵循msdn站点给出的标准示例:C# 在c sharp中使用QueryPerformanceCounter,但未获得精确结果,c#,C#,我使用QueryPerformanceCounter在我的c sharp程序中获得精确的计时行为。但是,如果我使用thread.sleep测量计时,它不会给出预期的结果。 我遵循msdn站点给出的标准示例: myTimer.Start(); 对于(int i=0;i
myTimer.Start();
对于(int i=0;i
结果如下:
迭代次数:5次
每次迭代的平均时间:
0.208957983452184秒
日期时间。现在给出:
试运行持续时间:
5秒
5000毫秒
你能告诉我什么是可能的错误吗?我会检查
QueryPerfCounter.Duration
下的数学,因为他们的示例输出对我来说是正确的,或者确保迭代下的秒数行是100000000
。你能显示更多的代码吗?就是输出你显示的数字的代码?(我希望您使用的是秒表类,而不是编写自己的…)我尝试了链接中给出的相同代码。一件有趣的事情是,它不在我的机器上工作,这台机器有Intel Core 2 Duo ProProcessor 2.99 GHz,但它在另一台机器上工作得很好,这台机器有Intel Xeon 2 GHz,代码没有任何问题。。。尝试使用System.Diagnostics.Stopwatch(使用与samepl相同的基础结构)重写,看看是否得到相同的奇怪结果。也许值得重新命名这个问题,以反映is失败的环境,以便其他人尝试回答。
myTimer.Start();
for (int i = 0; i < iterations; i++)
{
// Method to time
System.Threading.Thread.Sleep(1000);
}
myTimer.Stop();