美文网首页
GCD定时器

GCD定时器

作者: ccme | 来源:发表于2016-07-18 21:25 被阅读23次

NSTimer 定时器易受 RunLoop模式影响导致定时器不准确。

dispatch_source_t timer;

-(void)runGCDTimer

{

NSLog(@"click run GCD");

__block int count = 0;

dispatch_queue_t queue = dispatch_get_global_queue(0, 0);

timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);

dispatch_time_t start = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC));

uint64_t interval = (uint64_t)(1.0 *NSEC_PER_SEC);

dispatch_source_set_timer(timer, start, interval, 0);

dispatch_source_set_event_handler(timer, ^{

NSLog(@"------------:%@",[NSThread currentThread]);

count ++;

if (count == 5) {

dispatch_source_cancel(timer);

timer = nil;

}

});

dispatch_resume(timer);

}

相关文章

网友评论

      本文标题:GCD定时器

      本文链接:https://www.haomeiwen.com/subject/gnwglttx.html