std :: this_thread :: sleep_for的实现取决于系统时钟

时间:2018-09-25 09:37:04

标签: c++ windows c++11

我遇到的问题是std::this_thread::sleep_for实际上使用系统时钟来计算唤醒时间(至少在Windows上),而不是稳定时钟。更改系统时钟时会产生问题。例如。如果我有一个短等待间隔(例如50 ms)的等待循环,然后将系统时钟设置为2分钟,则该循环将停顿2分钟而不是50 ms。这是违反直觉的。我希望它是50毫秒(加上一些小偏差)。在任何其他情况下,如果可以在随机时间唤醒,则此功能没有意义。

关于sleep_for函数的文档说可以使用系统时钟,但是我想这是标准中的一个缺陷。至少应该选择要使用的时钟类型。或者(更好)标准应该要求时钟稳定。

那么,考虑到这样的缺陷,您是否知道其他任何与平台无关的方式可以睡眠一定时间?

0 个答案:

没有答案