GCD之dispatch_source_t

2017-07-05  本文已影响0人  yehkong
    //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);
_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

上一篇下一篇

猜你喜欢

热点阅读