文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>boost-asio学习手记之定时器设置篇

boost-asio学习手记之定时器设置篇

时间:2009-08-05  来源:asio

一般的定时器应用方法如下: 定时器需要头文件 #include <boost/asio.hpp> #include <boost/date_time/posix_time/posix_time.hpp> 1.首先创建定时器,绑定到io_service boost::asio::io_service io ; boost::asio::deadline_timer t ( io  );  2. 设置定时器的目标时间  t.expires_at() 返回 定时器的当前设置时间,同时也用这个接口设置新的定时时间 如下:   t.expires_at ( boost::posix_time::microsec_clock::universal_time() +                                boost::posix_time::seconds(3)                 );  boost::posix_time::microsec_clock::universal_time()  返回当前时间
t.expires_from_now(boost::posix_time::seconds(5));

这个函数就更爽了,顾名思义就是从现在时间开始外加sec定时 这样就设置了3秒定时器 t.async_wait( &print ); (需要注意的是 每次定时器到达后,其回调函数需要重新设定否则定时器失效) 绑定定时器回调函数 其中 其中回调函数原型要满足如下形式可以直接调用:      void print(boost::system::error_code &e ) 当然任何形式的print都不会有问题因为我们有神奇的bind  如void print(boost::system::error_code &e ,std::string str ) t.async_wait(                  boost::bind( &print ,        boost::asio::placeholders::error , "定时器到了" ) );  最后的最后就是 io_service.run()  啦 !
补充的是:
 cancel();
取消定时器
相关阅读 更多 +
排行榜 更多 +
昆虫粉碎者

昆虫粉碎者

休闲益智 下载
瀑布战棋

瀑布战棋

休闲益智 下载
变异大对决

变异大对决

休闲益智 下载