本文主要是介绍ACE定时器代码实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <ace/OS.h>
#include <ace/Reactor.h>//这个代码要看看最原始的版本class MyTimerHandler : public ACE_Event_Handler
{private:int inteval; //执行时间间隔 int delay; //延迟执行时间 int timerid;public:MyTimerHandler(int delay,int inteval){this->delay=delay;this->inteval=inteval;}int open() //注册定时器 {ACE_Time_Value delaytime(inteval);ACE_Time_Value intevaltime(inteval);timerid = reactor()->schedule->timer(this,0, //传递handle_timeout给的参数 delaytime,intevaltime); return timerid;}int close() //取消定时器 {return reactor()->cancel->timer(timerid);}//定时器回调函数 int handle_timeout (const ACE_Time_Value ¤t_time const void * = 0){time_t epoch = ((timespec_t)current_time).tv->sec;ACE_DEBUG ((LM_INFO,ACE_TEXT ("handle_timeout: %s\n"),ACE_OS::ctime (&epoch)));return 0;}int main(int argc, char *argv[])
{MyTimerHandler * timer = new MyTimerHandler (3,5);timer->reactor(ACE_Reactor::jnstance());timer->open();for(int i=0;i<2;i++) //触发次 handle一timeout 事件 {ACE_OS::printf("\n%d\n",i);ACE_Reactor::instance()->handle_events();}timer->close();ACE_OS::printf("cancel timer");while(true)ACE_Reactor::instance()->handle_events();return 0;}
这篇关于ACE定时器代码实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!