boost asio deadline_timer 取消测试
2011-06-12 08:54
489 查看
今天对 boost asio deadline_timer 的取消做了个测试,结果记录如下:
对于任何时间未到的 timer,只要对该 timer 做了 cancel 或者 expires_xxx 操作,该 timer 原先登记的 handler 都会被调用,并且 err 为 true。因此对于 deadline_timer 比较建议的做法如下:
对于任何时间未到的 timer,只要对该 timer 做了 cancel 或者 expires_xxx 操作,该 timer 原先登记的 handler 都会被调用,并且 err 为 true。因此对于 deadline_timer 比较建议的做法如下:
// timer handler 例子 void timer_handler(boost::asio::deadline_timer* timer , const boost::system::error_code& err) { if (err) { std::cout << "闹钟被取消了" << std::endl; } else { if (timer->expires_at() <= boost::asio::deadline_timer::traits_type::now()) { std::cout << "闹钟时间点到了,该起床了" << std::endl; } else { std::cout << "搞什么搞,时间还没有到,闹钟就响了,还让不让人睡觉" << std::endl; } } } // timer 例子 void timer_enable(boost::asio::deadline_timer* timer , size_t seconds_from_now) { assert(timer); timer->expires_from_now(boost::posix_time::seconds(seconds_from_now)); timer->async_wait(boost::bind(timer_handler, timer, boost::asio::placeholders::error)); }
相关文章推荐
- 演示boost::asio::deadline_timer如何使用
- boost.asio 的 deadline_timer
- BOOST-计时器-同步、异步(boost::asio::deadline_timer)
- 【Boost】boost库asio详解4——deadline_timer使用说明
- 浅析boost::asio::deadline_timer运行机制
- boost::asio::deadline_timer(理解)
- 浅析boost::asio::deadline_timer运行机制
- boost::asio::deadline_timer
- 演示boost::asio::deadline_timer如何使用
- Boost.Asio C++ 网络编程之十一:deadline_timer使用说明
- 【Boost】boost库asio详解4——deadline_timer使用说明
- boost.asio系列(一)——deadline_timer
- 【Boost】boost库asio详解4——deadline_timer使用说明
- 【Boost】boost库asio详解4——deadline_timer使用说明
- boost.asio系列——Timer
- Boost.Asio性能测试(★firecat推荐,红色字体是本人的标识★)
- boost::deadline_timer
- asio::deadline_timer
- C++ boost类库timer测试程序运行时间
- Boost.asio的简单使用(timer,thread,io_service类)