GCD timer

作者: tp夕阳武士 | 来源:发表于2019-08-08 14:21 被阅读0次
1.GCD提供了一个类似于NSTimer的类:dispatch_source_t

这个类的特点:

GCD的timer 不受 runloop的 mode影响,会一直执行
GCD的timer 可以做到绝对精准

//用法:

//1.创建GCD定时器
    /**
     参数1:设定soucrce的类型: DISPATCH_SOURCE_TYPE_TIMER -> 定时器类型
     参数2:描述信息,线程id
     参数3:更详细的描述信息
     参数4:队列,决定了timer在执行任务的时候在什么线程中执行
     */
    self.gcdTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_queue_create(0, 0));
    
//2.设置定时器的其他参数
    /**
     参数1:对哪一个timer进行设置
     参数2:经过多少秒后启动
     参数3:执行任务的时间间隔
     参数4:误差度 传0表示决定精准
     */
    dispatch_source_set_timer(self.gcdTimer, DISPATCH_TIME_NOW, time * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
    
//3.为定时器添加需要还行的任务
    dispatch_source_set_event_handler(self.gcdTimer, action);

    
//4.启动GCD定时器
    dispatch_resume(self.gcdTimer);

为了方便使用,自己写了一个GCDTimer,支持cocopod :RFgcdTimer

相关文章

  • iOS开发之进阶篇(10)—— Timer

    概述 本文将要讨论以下三种timer: NSTimer (Timer) CADisplayLink GCD 原理 ...

  • MQTT-Client-Framework GCD 使用

    GCDTimer 使用GCD 的 source timer 来完成 timer 做的事情. MQTTCFSocke...

  • 不需要手动释放的IOS定时器

    1.GCD优点:调用 dispatch_source_cancel(timer); 就会将 timer 对象销毁,...

  • GCD timer

    1.GCD提供了一个类似于NSTimer的类:dispatch_source_t 这个类的特点: GCD的time...

  • GCD Timer

    倒计时 定时器 timer 循环执行定时器

  • GCD timer

    推荐使用GCD方式创建timer的原因,GCD是基于内核的,会更加准时,NSTimer和CADisplayLink...

  • 使用GCD来创建Timer

    推荐使用GCD方式创建timer的原因,GCD是基于内核的,会更加准时,NSTimer和CADisplayLink...

  • GCD的timer

    #import "TestViewController.h"@interface TestViewControll...

  • GCD实现timer

    uint64_tinterval =2*NSEC_PER_SEC; //创建一个专门执行timer回调的GCD队列...

  • Swift GCD Timer

    众所周知,NSTimer 因为依赖于RunLoop去执行,而RunLoop本身工作很繁重,不能确保Timer及时执...

网友评论

      本文标题:GCD timer

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