定时器basic_deadline_timer/basic_waitable_timer

  • 定时器可以做什么用
    用于在确定的时间点或者经过确定的时间执行某种操作

  • deadline_timerwaitable_timer有什么区别
    在使用上没有区别,不同之处在于默认的deadline_timer使用的boost::posix_time::ptime作为时钟,而waitbale_timer默认提供了三种标准时钟:steady_clocksystem_clockhigh_resolution_clock

  • 如何构造定时器

    1. IO服务
    2. IO服务+时间点
    3. IO服务+时间段
      一旦指定了时间点/时间段,定时器会直接以同步方式被启用
  • 如何设置时间点/时间段
    expires_at用来指定等待的时间点,expires_from_now用来指定等待的时间段,设置完成后,任何异步等待将会被取消,如果定时器在此时已经到时,异步操作将不能被取消,但是会返回错误码表示该情况;该接口会返回被取消的异步操作个数。

  • 如何获取指定的等待时间点
    无参版的expires_at用来获取之前设置的等待时间点

  • 如何获取定时器剩余时间
    无参版的expires_from_now用来获取距离现在剩余的等待时间

  • 如何等待定时器完成
    有同步和异步两种方式,wait实现了阻塞式的等待,而async_wait则会启动一个异步等待,回调入参为错误码

  • 如何取消定时器等待
    cancel用来取消定时器上的任何异步操作,cancel_one只会取消一个,取消顺序为FIFO。

你可能感兴趣的:(定时器basic_deadline_timer/basic_waitable_timer)