我遇到的问题是std::this_thread::sleep_for
实际上使用系统时钟来计算唤醒时间(至少在Windows上),而不是稳定时钟。更改系统时钟时会产生问题。例如。如果我有一个短等待间隔(例如50 ms)的等待循环,然后将系统时钟设置为2分钟,则该循环将停顿2分钟而不是50 ms。这是违反直觉的。我希望它是50毫秒(加上一些小偏差)。在任何其他情况下,如果可以在随机时间唤醒,则此功能没有意义。
关于sleep_for
函数的文档说可以使用系统时钟,但是我想这是标准中的一个缺陷。至少应该选择要使用的时钟类型。或者(更好)标准应该要求时钟稳定。
那么,考虑到这样的缺陷,您是否知道其他任何与平台无关的方式可以睡眠一定时间?