CPP WINDOWS:是否有一个以微秒为单位的睡眠功能?

时间:2012-02-02 17:07:33

标签: c++ windows sleep

我知道有毫秒(睡眠(毫秒))

但我找不到一个微型..

4 个答案:

答案 0 :(得分:1)

您可以使用rdtsc指令或QueryPerformanceCounter Windows API函数来获取高分辨率计数器。您可以使用GetTickCount或时间函数来校准它们,例如。

答案 1 :(得分:1)

VS 11开发预览版包含处理线程的标准库部分。所以现在你可以说:

std::this_thread::sleep_for(std::chrono::microseconds(1));

当然这并不意味着线程会在这段时间后唤醒,但它应该与平台(和库实现)允许的一样接近。正如其他评论所指出的那样,Windows实际上并不允许线程在这么短的时间内休眠。

答案 2 :(得分:0)

Windows无法睡眠不到一毫秒。时间片往往远远高于1ms,因此即使线程具有最高优先级也不可能。

如果你不关心刻录CPU,你可以旋转直到QueryPerformanceCounter已经过去了。

答案 3 :(得分:0)

我刚写了一篇关于sleep()函数和旋转的详细评论 表现计数器。为避免再次在此输入,请点击以下链接:

c++, usleep() is obsolete, workarounds for Windows/MingW?