C++ 如何在Windows上正常忙碌地等待?

C++ 如何在Windows上正常忙碌地等待?,c++,windows,busy-waiting,C++,Windows,Busy Waiting,我需要实施繁忙的等待 如果您认为我不应该这样做,请提供一个低延迟选项,以替代在Windows 7 SP1上工作的忙等待返回S_OK 我已经找到了API,它正是我所需要的。该API是否暴露于用户模式?如果没有,如何实施?我知道如何调用\u mm\u pause内在函数,我不知道的是如何以足够的精度测量时间:QueryPerformanceCounter对于忙碌的等待来说太贵,GetTickCount很便宜,但没有我需要的分辨率,\u rdtsc可能会随着CPU频率而扩展 更新#1:我可以很好地暂停

我需要实施繁忙的等待

如果您认为我不应该这样做,请提供一个低延迟选项,以替代在Windows 7 SP1上工作的忙等待返回
S_OK

我已经找到了API,它正是我所需要的。该API是否暴露于用户模式?如果没有,如何实施?我知道如何调用
\u mm\u pause
内在函数,我不知道的是如何以足够的精度测量时间:
QueryPerformanceCounter
对于忙碌的等待来说太贵,
GetTickCount
很便宜,但没有我需要的分辨率,
\u rdtsc
可能会随着CPU频率而扩展

更新#1:我可以很好地暂停CPU,例如(int I=0;I<1000;I++)的
这就是我现在正在做的,在开始调用外部循环中的
Sleep(1)
之前


更新#2:只有在Windows 10 1703“创建者更新”中才实现了对GPU的正确等待,请参阅和API。在1703之前的Windows 7、8、8.1和10中,繁忙等待是获得通知的唯一方式。我需要尽快得到通知,每毫秒都很重要。我只有16毫秒的时间来渲染一帧,有些用户有144赫兹的显示器,使得他们的电脑上只有7毫秒。

要在用户模式下正确等待,请参阅更新