美文网首页
GCD创建、开启、暂停、取消定时器

GCD创建、开启、暂停、取消定时器

作者: Smallwolf_JS | 来源:发表于2018-08-13 15:29 被阅读4次
-(void) startGCDTimer{
    NSTimeInterval period = 1.0; //设置时间间隔
    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
    dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), period * NSEC_PER_SEC, 0); //每秒执行
    dispatch_source_set_event_handler(_timer, ^{
        //在这里执行事件
        NSLog(@"每秒执行test");
    });
    
    dispatch_resume(_timer);
}
 
 
-(void) pauseTimer{
    if(_timer){
        dispatch_suspend(_timer);
    }
}
-(void) resumeTimer{
    if(_timer){
        dispatch_resume(_timer);
    }
}
-(void) stopTimer{
    if(_timer){
        dispatch_source_cancel(_timer);
        _timer = nil;
    }
}

相关文章

  • GCD创建、开启、暂停、取消定时器

  • tableView或者scrollView滑动时 定时器 不响应

    先写解决办法 1. 2. 使用GCD创建定时器。GCD创建定时器不收Runloop的影响,并且GCD的定时器更精准...

  • GCD定时器

    GCD定时器会自己开启一条子线程,子线程也会自己开启runloop,自己创建管理,所以需要高精度计时时,用GCD计...

  • GCD定时器

    GCD定时器有几个注意的点1.定时器在运行状态才能取消,如果挂起状态取消就会崩溃。2.在GCD中没有判断是否正在运...

  • 野指针crash问题

    在使用gcd定时器的时候,取消定时器时忘记先判空处理,导致重复取消crash。特此记录一下。

  • iOS GCD

    GCD原生并不支持取消操作。dispatch_suspend函数也只能暂停开启新的未执行的block,已经处于执行...

  • GCD中的定时器(五)

    一. GCD中定时器的使用方法 创建一个队列 创建一个GCD的定时器 设置定时器的开始时间,间隔时间以及精准度 设...

  • iOS-基础巩固-NSOperation

    NSBlockOperation GCD & NSOperation 对比 最大并发数 队列的取消、暂停、恢复 取...

  • 多线程常见实例

    1. GCD的cancel操作 NSOperation 是基于GCD来实现的,其中的任务可以设置依赖、暂停、取消,...

  • GCD定时器

    创建GCD定时器 注意:默认创建的定时器对象需要强引用保住它的命,在任务执行中不被释放 定时器操作函数 dispa...

网友评论

      本文标题:GCD创建、开启、暂停、取消定时器

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