如何在循环中使用更少的CPU?

Mar*_*ark 5 c++ windows infinite-loop visual-studio

我有一个看起来像这样的循环:


while (elapsedTime < refreshRate) 
{
    timer.stopTimer();
    elapsedTime=timer.getElapsedTime();
}
我在别处读过类似的东西(C Main Loop没有100%cpu),但是这个循环正在运行一个必须准确的高分辨率计时器.那么我怎么能在保持高分辨率的同时不占用100%的CPU呢?

tov*_*are 6

你不应该忙 - 等一下,而是让操作系统告诉你什么时候过去了.

http://msdn.microsoft.com/en-us/library/ms712704(VS.85).aspx

高分辨率计时器(高于10毫秒)

http://msdn.microsoft.com/en-us/magazine/cc163996.aspx