ACE_Reactor实现计时器
ACE_Reactor的原理参考:http://blog.csdn.net/calmreason/article/details/20694523点击打开链接
其中ACE_Reactor的schedule_timer()方法对应的四个参数如下 schedule_timer (ACE_Event_Handler *event_handler, 第一个参数指向一个ACE_Event_Handler类,该类提供了 第二个参数表传送的参数,跟handle_timeout方法的arg参数对应 第三个参数表计时器开始起作用的时间,时间类对应为ACE_Time_Value类 第四个参数表计时器间隔执行的时间,如为0,则表计时器只计时一次
#include <ace/OS.h> #include <ace/Reactor.h> #include <iostream> class MyTimerHandler : public ACE_Event_Handler { public: MyTimerHandler(int delay,int inteval) { //注册回调器 this->reactor(ACE_Reactor::instance()); //设置回调器多长时间回调一次 this->reactor()->schedule_timer(this,//传递handle_timeout给的参数 ACE_Time_Value(delay),ACE_Time_Value(inteval)); } //定时器回调函数 int handle_timeout (const ACE_Time_Value ¤t_time,const void * = 0) { std::cout<<"time out :: handle_timeout() "<<std::endl; return 0; } }; int main(int argc,char *argv[]) { //创建一个定时器 MyTimerHandler mt(1,1); //捕捉定时器到时事件,到时后,执行计时器的handle_timeout()方法 ACE_Reactor::instance ()->run_reactor_event_loop(); return 0; } 每隔一秒钟输出一行
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Nosql之MongoDB的下载安装和服务配置
- ruby-on-rails – 黄瓜测试突然停止
- 基于vue.js中事件修饰符.self的用法(详解)
- ruby-on-rails – 使用Warbler打包Rails应用程序的日志在哪
- ruby-on-rails – rails数组在生产中输出奇怪的格式
- c# – IQueryable where子句
- ios – Xcode 4.5 UIScrollView:看不到struts和弹簧(OSX 1
- Cache Fetched AJAX Requests Locally: Wrapping the Fetch
- c#中自定义Base16编码解码的方法示例
- c – 具有默认参数的模板特化