我想知道是否有人知道可以在 c 中的 windows 中使用的更好的睡眠功能,除了 Sleep(),它需要毫秒输入,并且只保证输入是经过的最短时间。我在 1 毫秒内通过,但实际上延迟了 15-16 毫秒。有什么方法可以准确设置指定的睡眠时间?
Schuyler
问问题
6131 次
4 回答
2
不,不是。当你告诉你的程序休眠时,你就放弃了处理器,让操作系统决定下一步该做什么。一旦操作系统处于控制之中,它就会决定何时给您的程序另一片处理时间。这就是您可以指定最小值的原因,但不能保证操作系统会在任何特定时间返回您的进程。
于 2009-06-03T15:15:56.427 回答
1
查看多媒体计时器。
于 2009-06-03T15:12:41.893 回答
1
睡眠只保证您的进程不会执行至少 n毫秒,而不是它会恰好睡眠 n毫秒。也许你想设置一个计时器?或忙等待(即循环轮询QueryPerformanceCounter)。
我会尽量避免这种方法(忙等待),除非你必须这样做,你正在燃烧周期并且你正在阻止 CPU 进入较低的时钟速度(即消耗电池寿命)
于 2009-06-04T02:24:14.623 回答
0
不,Windows 上没有更好的睡眠功能,因为毫秒是可用的粒度级别。如果你想睡得更少,你需要实现某种自旋锁。
于 2009-06-03T15:14:21.530 回答