美文网首页
GCD 定时器

GCD 定时器

作者: Albert新荣 | 来源:发表于2019-10-04 21:17 被阅读0次
        /** 创建定时器对象
         * para1: DISPATCH_SOURCE_TYPE_TIMER 为定时器类型
         * para2-3: 中间两个参数对定时器无用
         * para4: 最后为在什么调度队列中使用
         
         */
        _gcdTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0));
        /** 设置定时器
         * para2: 任务开始时间
         * para3: 任务的间隔
         * para4: 可接受的误差时间,设置0即不允许出现误差
         * Tips: 单位均为纳秒
         */
        dispatch_source_set_timer(_gcdTimer, DISPATCH_TIME_NOW,2* NSEC_PER_SEC, 0.0 * NSEC_PER_SEC);
        /** 设置定时器任务
         * 可以通过block方式
         * 也可以通过C函数方式
         */
        dispatch_source_set_event_handler(_gcdTimer, ^{
            static int gcdIdx = 0;
            NSLog(@"GCD Method: %d", gcdIdx++);
            NSLog(@"%@", [NSThread currentThread]);
          //需要定时执行的方法
        });
        // 启动任务,GCD计时器创建后需要手动启动
        dispatch_resume(_gcdTimer);
    

    相关文章

      网友评论

          本文标题:GCD 定时器

          本文链接:https://www.haomeiwen.com/subject/xbqqyctx.html