Windows中的Sleep(ms)命令会导致线程释放其时间片。 有一个等效的睡眠(毫秒)命令,暂停线程,但不释放时间片?
你不希望你的线程睡觉(又名暂停),你想要停下来。 做一个简单的循环:
#include <time.h> void stall(unsigned ms){ clock_t goal = clock()+ms; while(goal>clock()); } // or maybe higher resolution with some performance profiling functions...
奇怪。
一个办法是让你的线程执行一个循环,直到所需的periode结束。
一个更好的解决方案可能是让处理该设备的线程成为高优先级。 但无论如何,Windows并不是非常适合实时系统…