GCD定时器使用笔记 及 详细分析

来源:互联网 发布:mysql删除数据库所有表 编辑:程序博客网 时间:2024/05/16 00:25
<pre name="code" class="objc">    // 1.创建创建队列,取全局并发队列    dispatch_queue_t queue = dispatch_get_global_queue(0, 0);        // 2.创建一个GCD定时器    /**      第一个参数:表明创建的是一个定时器     第四个参数:队列     */    dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);        // 2.1.由于下面的定时器调用方法是个回调,所以要用一个属性强引用这个定时器,不然这个定时器到回调那里就销毁了。    _timer = timer;        // 3.设置定时器的开始时间,调用间隔时间,精准度    /**      第一个参数:定时器对象     第二个参数:起始时间     第三个参数:时间间隔     第四个参数:精度,一般为0,如果线程很忙,可以把精度改低一点。这定时器一样是在runloop中运行,不过是给gcd封装了          定时器的单位是ns纳秒级的     */    dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 2.0 * NSEC_PER_SEC, 2 * NSEC_PER_SEC);        // 4.定时器要调用的方法    dispatch_source_set_event_handler(timer, ^{        NSLog(@"hahaha");    });        // 5.启动定时器    dispatch_resume(timer);


                                             
0 0
原创粉丝点击