赞
踩
Libevent如何安装请参考这篇博客 windows 上安装 libevent
有了定时器,我们便可以定时的做一些任务
- struct event_base *baseEv; //事件
- struct event *ev;
- struct timeval tv; //定时器
- void time_cb(int fd,short _event,void *argc)
- {
- cout<<"timer wakeup"<<endl;
- evtimer_add(ev,&tv);/*重新添加定时器*/
- }
-
- static void MyTime()
- {
- WSADATA WSAData; /*初始化WINDOWS socket库*/
- WSAStartup(0x101, &WSAData);
-
-
- struct event_base *base = event_base_new();//初始化libevent库,相当于初始化一个Reactior,就可以注册事件了.
- tv.tv_sec=5; //间隔
- tv.tv_usec=0;
- ev = evtimer_new(base,time_cb,NULL);//初始化关注的事件,并设置回调函数
-
- event_add(ev,&tv);//注册事件 相当于调用Reactor::register_handler()函数注册事件
- event_base_dispatch(base);//进入消息循环和消息分发
- }
-
- int main(int argc, char **argv)
- {
- MyTime();
- return 0;
- }
调用回调函数后,如果希望定时器继续起作用,那么就需要重新添加
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。