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