美文网首页
比 NSTimer 更准的定时器dispatch_source_

比 NSTimer 更准的定时器dispatch_source_

作者: Coder_LRT | 来源:发表于2017-03-21 17:41 被阅读0次

NSTimer受runloop的影响,由于runloop需要处理很多任务,导致NSTimer的精度降低,在日常开发中,如果我们需要对定时器的精度要求很高的话,可以考虑dispatch_source_t去实现 。dispatch_source_t精度很高,系统自动触发,系统级别的源。下面是通过dispatch_source_t 创建 计时器的例子

dispatch_queue_tqueue = dispatch_get_global_queue(0,0);

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

//开始时间

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

//间隔时间

uint64_t interval = 2.0*NSEC_PER_SEC;         

 dispatch_source_set_timer(self.timer, start, interval,0);

//设置回调

dispatch_source_set_event_handler(self.timer, 

^{

    NSLog(@"----self.timer---");    

});

//启动

dispatch_resume(self.timer);

相关文章

  • 比 NSTimer 更准的定时器dispatch_source_

    NSTimer受runloop的影响,由于runloop需要处理很多任务,导致NSTimer的精度降低,在日常开发...

  • iOS 定时器(NSTimer、dispatch_source_

    本文约100行代码,读完大概用时5-10分钟,理解的话看个人知识掌握程度。 App在开发的过程中,经常会遇到倒计时...

  • GCD定时器的实现

    GCD定时器 GCD定时器不受RunLoop约束,比NSTimer更加准时 证明,实现GCD定时器

  • iOS - GCD中的定时器

    GCD定时器优点:① GCD定时器不受RunLoop约束② 比NSTimer更加准时。 GCD定时器用法敲 dis...

  • 18-内存管理 01(定时器)

    一、定时器 NSProxy 二、GCD定时器 GCD定时器操作的系统内核,比NSTimer准时;当有scrollv...

  • 无标题文章

    iOS NSTimer使用详解-开启、关闭、移除 定时器定时器详解ios定时器关闭定时器NSTimer 1、要使用...

  • 防止内存泄露的NSTimer定时器

    目录 NSTimer的基础用法 NSTimer的内存泄露 安全防侧漏的定时器 NSTimer的基础用法 创建定时器...

  • 定时器的使用介绍

    iOS中的定时器大致分为这几类: NSTimer CADisplayLink GCD定时器 (一)NSTimer ...

  • OC定时器

    定时器方法 NSTimer * timer=[NSTimer timerWithTimeInterval:2.0 ...

  • GCD 实现定时器

    NSTimer的定时器方法 About NSTimer GCD中使用dispatch_source_t实现定时器 ...

网友评论

      本文标题:比 NSTimer 更准的定时器dispatch_source_

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