Windows中的Sleep(ms)命令导致线程释放其时间片。是否有等效的Sleep(ms)命令可以暂停线程但不释放时间片?
答案 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不太适合实时系统......