本文共 755 字,大约阅读时间需要 2 分钟。
// 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);
转载地址:http://cakyb.baihongyu.com/