【发布时间】:2014-08-25 17:23:32
【问题描述】:
我需要创建一个计时器,它会定期(例如每 50 毫秒)调用我的函数。 但问题是我需要在计时器运行时更改系统时间。 我想使用 boost 来做到这一点,以便代码是可移植的。否则我在 Linux 机器上运行它。
我尝试过的事情:
- 尝试使用 while 循环和 thread::sleep。使用 stable_clock 计算睡眠时间。
- 也尝试使用deadline_timer
当系统时间调整后,这两个都停止工作。
问题: 有没有办法(最好使用 boost)来创建一个独立于系统时间的回调计时器? (示例代码的奖励业力)
【问题讨论】:
-
??如果你 sleep() 间隔 50 毫秒,更改系统时间应该不会影响它。
-
确实如此。我将系统时间向前更改(超过 50 毫秒)并且计时器停止
-
clock_gettime和CLOCK_MONOTONIC
标签: c++ linux boost timer systemtime