美文网首页
使用GCD实现计时器

使用GCD实现计时器

作者: sierwan | 来源:发表于2022-12-07 18:14 被阅读0次

使用GCD实现计时器

 int count = 0;

     // 获得队列
    dispatch_queue_t queue = dispatch_get_main_queue();

    // 创建一个定时器(dispatch_source_t本质还是个OC对象)
    self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);

    // 设置定时器的各种属性(几时开始任务,每隔多长时间执行一次)
    // GCD的时间参数,一般是纳秒(1秒 == 10的9次方纳秒)
    // 何时开始执行第一个任务
    // dispatch_time(DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC) 比当前时间晚3秒
    dispatch_time_t start = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC));
    uint64_t interval = (uint64_t)(1.0 * NSEC_PER_SEC);
    dispatch_source_set_timer(self.timer, start, interval, 0);

    // 设置回调
    dispatch_source_set_event_handler(self.timer, ^{
        NSLog(@"------------%@", [NSThread currentThread]);
        count++;

        if (count == 4) {
            // 取消定时器
            dispatch_cancel(self.timer);
            self.timer = nil;
        }
    });

    // 启动定时器
    dispatch_resume(self.timer);
    

转载自:https://www.cnblogs.com/lovemargin/p/14576777.html

相关文章

  • 使用GCD实现计时器

    使用GCD实现计时器 转载自:https://www.cnblogs.com/lovemargin/p/14576...

  • 面试问题总结

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

  • Swift:使用GCD实现计时器

    1、在global线程里创建一个时间源 2、开始Dispatch Timer 3、时分秒之间的转化 调用如下: 开...

  • GCD计时器

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

  • GCD倒计时器速成

    简单介绍 1、单例类管理GCD计时器;2、类方法调用计时器API,方便快捷;3、提供三组API,快速实现计时、倒计...

  • 单例的实现

    一、使用GCD实现 二、加锁实现 附:

  • TCP的4个计时器

    大多数TCP至少实现使用4个计时器:重传计时器,持续计时器,保活计时器,TIME_WAIT计时器 1.重传计时器:...

  • GCD实现定时器

    GCD实现定时器不会像NSTimer被runtime监听状态影响得不到相应,如果实现比较安全而稳定的计时器的话,还...

  • iOS GCD 计时器使用

    暂停计时器 说明一下:1._timer在挂起以后,之前的计时仍然有效,比如你在计时到0.9秒的时候挂起,再次res...

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

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

网友评论

      本文标题:使用GCD实现计时器

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