使用GCD创建定时器

2017-09-07  本文已影响5人  爱吃萝卜的小蘑菇
GCD 定时器
dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
    
    //1.创建一个GCD的定时器
    /*
     第一个参数:说明这是一个定时器
     第四个参数:GCD的回调任务添加到那个队列中执行,如果是主队列则在主线程执行
     */
    dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
    //2.设置定时器的开始时间,间隔时间以及精准度
    /*
     第一个参数:要给哪个定时器设置
     第二个参数:定时器的开始时间DISPATCH_TIME_NOW表示从当前开始
     第三个参数:定时器调用方法的间隔时间
     第四个参数:定时器的精准度,如果传0则表示采用最精准的方式计算,如果传大于0的数值,则表示该定时切换i可以接收该值范围内的误差,通常传0
     该参数的意义:可以适当的提高程序的性能
     注意点:GCD定时器中的时间以纳秒为单位(面试)
     */
    dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 3.0 * NSEC_PER_SEC, 1.0 * NSEC_PER_SEC);
    //3.设置定时器开启后回调的方法
    /*
     第一个参数:要给哪个定时器设置
     第二个参数:回调block
     */
    dispatch_source_set_event_handler(timer, ^{
        <#code to be executed when timer fires#>
    });
    dispatch_resume(timer);
上一篇 下一篇

猜你喜欢

热点阅读