线程应用程序中的sleep命令

时间:2011-04-16 14:07:14

标签: c++ windows thread-sleep

Windows中的Sleep(ms)命令导致线程释放其时间片。是否有等效的Sleep(ms)命令可以暂停线程但不释放时间片?

2 个答案:

答案 0 :(得分:4)

你不想让你的线程睡觉(也就是暂停),你想要让它停下来。用简单的循环做到这一点:

#include <time.h>

void stall(unsigned ms){
    clock_t goal = clock()+ms;
    while(goal>clock());
}
// or maybe higher resolution with some performance profiling functions...

答案 1 :(得分:1)

奇怪。

这样做的一种方法是让你的线程执行一个循环,直到所需的periode结束。

更好的解决方案可能是为处理设备的线程提供高优先级。但无论如何,Windows不太适合实时系统......