Creating a timer dispatch source

dispatch_source_t CreateDispatchTimer(uint64_t interval,
                uint64_t leeway,
                dispatch_queue_t queue,
                dispatch_block_t block)
  {
     dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,
0, 0, queue);
if (timer) {
        dispatch_source_set_timer(timer, dispatch_walltime(NULL, 0), interval,
  leeway);
        dispatch_source_set_event_handler(timer, block);
   dispatch_resume(timer);
}
   return timer;
}


void MyCreateTimer()
  {
     dispatch_source_t aTimer = CreateDispatchTimer(30ull * NSEC_PER_SEC,
                                 1ull * NSEC_PER_SEC,
                                 dispatch_get_main_queue(),
                                 ^{ MyPeriodicTask(); });
     // Store it somewhere for later use.
      if (aTimer)
      {
          MyStoreTimer(aTimer);
      }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值