美文网首页
GCD计时器的相关操作

GCD计时器的相关操作

作者: 华楠 | 来源:发表于2018-08-02 11:14 被阅读0次

集团项目需要在网络请求的时候添加一个计时器,NSTimer有什么缺点我就不说了,今天说下GCD做计时器的一些心得。
创建计时器

@property (nonatomic, strong) dispatch_source_t timer;//创建一个全局的timer

self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0));
    dispatch_time_t start = dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC);//开始时间:从现在开始1秒后开始
    dispatch_source_set_timer(self.timer, start, (int64_t)(1.0 * NSEC_PER_SEC), 0);
    
    dispatch_source_set_event_handler(self.timer, ^{
//        计时器计时中需要执行的方法
        [self timerMethod1];
    });

//开启计时器
dispatch_resume(self.timer);
//关闭计时器
dispatch_cancel(self.timer);

使用这个方法关闭计时器,timer会置nil,如果循环使用计时器,再次执行开启计时器的方法,就会出现闪退情况,可以使用下面的方法暂停计时器

dispatch_suspend(self.timer);

这样下次启动计时器就可以正常使用了。

相关文章

  • GCD计时器的相关操作

    集团项目需要在网络请求的时候添加一个计时器,NSTimer有什么缺点我就不说了,今天说下GCD做计时器的一些心得。...

  • ios多线程操作— GCD延迟操作和相关使用方法

    ios多线程操作— GCD延迟操作和相关使用方法 0x01.iOS版本 使用GCD函数可以进行延时操作,该函数为 ...

  • GCD计时器

    计时器的方法是用: 计时器方法有多种,其中一个可以使用GCD,也可以用NSTimer,现在介绍GCD的方法(笔者认...

  • iOS - 计时器及冲突问题(NSTimer,dispatch_

    说到计时器大家也都很清楚NSTimer计时器,GCD 计时器。下面我们来说一下这两个计时器,以及计时器在遇到UIS...

  • 面试问题总结

    Runtime理解。 Runloop理解,结合计时器。 GCD常用的方法。 GCD的原理。 KVO和KVC的实现原...

  • iOS多线程之GCD

    1. GCD相关概念 任务:就是执行操作的意思,就是你在线程中执行的那段代码。在 GCD 中是放在 block...

  • iOS - GCD 实现定时器、倒计时

    标签(空格分隔): 计时器 GCD timer 倒计时 GCD 定时器 NSTimer 的定时器是在 RunLoo...

  • NSTimer CADisplayLink GCD计时器的深入探

    关于NSTimer CADisplayLink GCD计时器的杂谈 ** NSTimer ** iOS中最常用的定...

  • YYTimer源码阅读

    YYTimer是一个基于GCD的线程安全的计时器,它的API和NSTimer类似。有以下几种不同点: 基于GCD,...

  • GCD计时器

    大家在开发的过程中,经常会用到定时器,通常的做法可能就是NSTimer,了解过GCD的同学可能会接触到dispat...

网友评论

      本文标题:GCD计时器的相关操作

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