睡眠function在C中的窗口。 是否存在精度更高的函数?

我想知道是否有人知道一个更好的睡眠函数,可以用在c中的窗口,除了睡眠(),这需要一个毫秒的input,只保证input是经过的最小时间量。 我通过1毫秒,但实际上得到15-16毫秒的延迟。 有什么办法可以准确地设定一个特定的睡眠时间吗?

Solutions Collecting From Web of "睡眠function在C中的窗口。 是否存在精度更高的函数?"

不,不是。 当你让你的程序入睡时,你放弃了处理器,让操作系统决定下一步该做什么。 一旦操作系统在控制之中,它决定何时给你的程序另一片处理时间。 这就是为什么你可以指定一个最小值,但是不能保证操作系统会在任何特定的时间返回到你的进程。

看看多媒体计时器 。

睡眠只保证您的进程不会执行至少 n毫秒,而不会睡眠正好 n毫秒。 也许你想建立一个计时器? 或者忙于等待(即循环轮询QueryPerformanceCounter)。

我试图避免这种方法(忙等待),除非你必须,但是你正在燃烧周期,你正在停止CPU进入较低的时钟速度(即消耗电池寿命)

不,在Windows上没有更好的睡眠功能,因为毫秒是可用的粒度级别。 如果你想睡较少的时间,你需要实现自旋锁的种类。