1. 创建timer:
timer_t timer_id; // 保存timer的ID
struct sigevent timer_event; // 用来设置timer的属性timer_event.sigev_priority = SIGEV_PULSE_PRIO_INHERIT; timer_event.sigev_notify = SIGEV_PULSE; // 通知类型 (通过脉冲)timer_event.sigev_code = ; // 脉冲代码timer_event.sigev_coid = connectionid; // 这个connectionid可以是和dispatch_t进行连接后返回的connectionid(message_connect)// 也可以是通过ConnectAttach和某个Channel绑定后返回的connectionidtimer_create(CLOCK_REALTIME, &timer_event, &timer_id); // 创建timer
2. 开启timer:
struct itimerspec timespec;
// 设置超时时间(不是间隔)
timespec.it_value.tv_sec = 2; // 2秒
timespec.it_value.tv_nsec = 0;timer_settime(timer_id, 0, ×pec, NULL);
3. 停止timer:
struct itimerspec timespec = {0};
timer_settime(timer_id, 0, ×pec, NULL);