美文网首页
GCD中的定时器的使用方法!

GCD中的定时器的使用方法!

作者: 小吖朱 | 来源:发表于2017-01-16 11:57 被阅读0次

在我们使用NSTimer的时候会出现一个问题,当我们去拖拽界面的时候定时器会停止,我们需要用到runloop,殊不知,还有一种方法就是GCD中的定时器:下面具体说一说GCD中的定时器怎么用!看代码!

#import "ViewController.h"

@interface ViewController ()
/** 注释 */
@property (nonatomic, strong) dispatch_source_t timer;
@end

@implementation ViewController

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    NSLog(@"%s",__func__);
    
    
    //1.创建GCD中的定时器
    /*
     第一个参数:source的类型DISPATCH_SOURCE_TYPE_TIMER 表示是定时器
     第二个参数:描述信息,线程ID
     第三个参数:更详细的描述信息
     第四个参数:队列,决定GCD定时器中的任务在哪个线程中执行
     */
    dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0));
    
    //2.设置定时器(起始时间|间隔时间|精准度)
    /*
     第一个参数:定时器对象
     第二个参数:起始时间,DISPATCH_TIME_NOW 从现在开始计时
     第三个参数:间隔时间 2.0 GCD中时间单位为纳秒
     第四个参数:精准度 绝对精准0
     */
    dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 2.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
    
    //3.设置定时器执行的任务
    dispatch_source_set_event_handler(timer, ^{
        NSLog(@"GCD---%@",[NSThread currentThread]);
    });
    
    //4.启动执行
    dispatch_resume(timer);
    
    self.timer = timer;
}
@end

这是一个无比精准的定时器!

相关文章

  • GCD中的定时器(五)

    一. GCD中定时器的使用方法 创建一个队列 创建一个GCD的定时器 设置定时器的开始时间,间隔时间以及精准度 设...

  • GCD定时器使用

    iOS中的常用定时器分为这几类: NSTimer CADisplayLink GCD定时器 选择GCD定时器原因:...

  • GCD定时器的实现

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

  • iOS - GCD中的定时器

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

  • IOS定时器操作和NSTimer的各种坑

    本文列举iOS的各种定时相关操作的使用方法,欢迎大家补充指教。主要包括: NSTimer GCD定时器 dispa...

  • iOS定时器

    本文列举iOS的各种定时相关操作的使用方法,欢迎大家补充指教。主要包括: NSTimer GCD定时器 dispa...

  • GCD中的定时器的使用方法!

    在我们使用NSTimer的时候会出现一个问题,当我们去拖拽界面的时候定时器会停止,我们需要用到runloop,殊不...

  • GCD定时器

    GCD定时器 GCD定时器不受RunLoop的影响,调用频率比较固定

  • tableView或者scrollView滑动时 定时器 不响应

    先写解决办法 1. 2. 使用GCD创建定时器。GCD创建定时器不收Runloop的影响,并且GCD的定时器更精准...

  • 定时器的使用介绍

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

网友评论

      本文标题:GCD中的定时器的使用方法!

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