参照网上的,但是并没有什么作用,求代码,求解决
// 1.创建一个定时器
// 获取一个全局并发队列
dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
// 第四个参数:传递一个队列,该队列对应了将来的回调方法在哪个线程中执行
dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
// 2.指定定时器开始的时间和间隔的时间, 以及精准度
// 开始时间
dispatch_time_t startTime = dispatch_time(DISPATCH_TIME_NOW, 3.0 * NSEC_PER_SEC);
// 间隔时间
uint64_t interval = 1.0 * NSEC_PER_SEC;
// 设置定时器
/*
第1个参数: 需要给哪个定时器设置
第2个参数: 定时器开始的时间/DISPATCH_TIME_NOW立即执行
第3个参数: 定时器开始之后的间隔时间
第4个参数: 定时器间隔执行的精准度, 传入0代表最精准(尽量的让定时器精准), 传入一个大于0的值, 代表多少秒的范围是可以接受的
第四个参数存在的意义: 主要是为了提高程序的性能
注意点: Dispatch的定时器接收的时间是纳秒
*/
dispatch_source_set_timer(timer, startTime, interval, 0 * NSEC_PER_SEC);
// 3.指定定时器的回调方法
/*
第1个参数: 需要给哪个定时器设置
第2个参数: 需要回调的block
*/
dispatch_source_set_event_handler(timer, ^{
NSLog(@"++++++++++++++ %@", [NSThread currentThread]);
});
// 4.开启定时器
dispatch_resume(timer);
Try it in the main thread