1

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

4

2 回答 2

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...
于 2011-04-16T14:10:46.087 回答
1

奇怪的。

一种方法是让您的线程执行一个循环,直到所需的周期结束。

更好的解决方案可能是给处理设备的线程一个高优先级。但不管怎样,Windows 并不是很适合实时系统……

于 2011-04-16T14:12:39.283 回答