美文网首页
GCD之dispatch_source_t

GCD之dispatch_source_t

作者: yehkong | 来源:发表于2017-07-05 22:39 被阅读0次
    • 计时器dispatch_source_t
        //timer 运行的线程
        dispatch_queue_t dispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
        //创建timer
        dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatchQueue);
        //设置timer开始时间、间隔时间、偏差
        dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
        //timer执行体
        dispatch_source_set_event_handler(timer, ^{
            NSLog(@"timer executed code");
        });
        //启动timer
        dispatch_resume(timer);
        
        //停止timer
        dispatch_source_cancel(timer);
    
    • dispatch_time_t的两种定义方法
      1.dispatch_time(dispatch_time_t when, int64_t delta);
      2.dispatch_walltime(const struct timespec *_Nullable when, int64_t delta);
      其中第二个函数的参数timespec结构体定义如下:
    _STRUCT_TIMESPEC
    {
        __darwin_time_t tv_sec;
        long            tv_nsec;
    };
    

    本文的demo地址:github demo 地址

    github demo运行效果:


    timer.png

    另外其他的GCD备忘链接如下:
    GCD之深入学习知识点备忘1
    GCD之深入学习知识点备忘2
    GCD之深入学习知识点备忘3
    GCD之深入学习知识点备忘4

    相关文章

      网友评论

          本文标题:GCD之dispatch_source_t

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