libevent简单应用_1_时间定时器

来源:互联网 发布:uuu网络加速器下安卓 编辑:程序博客网 时间:2024/05/16 11:28
#include <event2/event.h>#include <event2/util.h>#include <iostream>#include <stdlib.h>#include <unistd.h>#include <stdio.h>using namespace std;struct EventTimerParam{struct timeval tv;void *ctx;void *evt;};void libevent_tick_event_cb(evutil_socket_t fd, short events, void *ctx){printf("function1 is called\n");EventTimerParam *pParam = (EventTimerParam*)ctx;pParam->tv.tv_sec = 1;evtimer_add((struct event*)pParam->evt, &pParam->tv);}int main(){struct event_base *base_;base_ = event_base_new();if(!base_){cout<<"Can't open event base"<<endl;return 1;}EventTimerParam *pTimerParam = (EventTimerParam*)malloc(sizeof(EventTimerParam));memset(pTimerParam, 0, sizeof(EventTimerParam));struct event *ev = evtimer_new(base_, libevent_tick_event_cb, pTimerParam);pTimerParam->evt = ev;pTimerParam->ctx = NULL;pTimerParam->tv.tv_sec = 1;evtimer_add(ev, &pTimerParam->tv);int err = event_base_dispatch(base_);//int err = event_base_loop(base_, EVLOOP_ONCE);//int err = event_base_loop(base_, EVLOOP_NONBLOCK);cout<<"err = "<< err <<endl;return 0;}

编译方法:

g++ -o test_timer test_timer.cpp -levent


原创粉丝点击