美文网首页
iOS延时执行的几种方式,附带GCD写的定时器

iOS延时执行的几种方式,附带GCD写的定时器

作者: 2897275c8a00 | 来源:发表于2017-06-07 15:49 被阅读50次

一.延时执行的几种方式

最近发现扫描宝挺好用,将手写的几种延时方式发出来分享一下:

延时方式

二.GCD写的定时器

- (void)startTimerWithDelay:(NSInteger)delayTime passOneSeconds:(void(^)(int currentTime))oneSecondsPassBlock stop:(void(^)())stopBlock{

倒计时时间自定

__block int timeout = delayTime;

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,queue);

dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); //每秒执行

dispatch_source_set_event_handler(_timer, ^{

if(timeout <= 0){ //倒计时结束,关闭

dispatch_source_cancel(_timer);

dispatch_async(dispatch_get_main_queue(), ^{

//这里调用结束的Blcok

if(stopBlock){

stopBlock();

}

});

}else{

dispatch_async(dispatch_get_main_queue(), ^{

//倒计时中,每过一秒调用过去1s的block

if(oneSecondsPassBlock){

oneSecondsPassBlock(timeout);

}

});

timeout--;

}

});

dispatch_resume(_timer);

}

相关文章

  • iOS延时执行的几种方式,附带GCD写的定时器

    一.延时执行的几种方式 最近发现扫描宝挺好用,将手写的几种延时方式发出来分享一下: 二.GCD写的定时器 - (v...

  • 关于GCD常用的方法

    iOS开发多线程篇—GCD的常见用法 一、延迟执行 1.介绍 iOS常见的延时执行有2种方式 (1)...

  • 7.多线程基础(七)GCD加强

    1.GCD串行队列和并发队列 2.GCD延时执行 3.GCD线程组:(的作用) 4.GCD定时器: GCD的实现 ...

  • iOS 定时器耗电探究

    iOS开发中的几种定时器 iOS开发中定时器实现方式大致有三种,一种是Timer实现,一种是通过GCD自己创建,另...

  • 轮子实用技巧

    iOS中延时执行的几种方式的比较和汇总https://www.huaweicloud.com/articles/5...

  • IOS-延时执行

    IOS中延时执行的几种方式的比较和汇总 本文列举了四种延时执行某函数的方法及其一些区别。假如延时1秒时间执行下面的...

  • iOS中延时执行的几种方式的比较和汇总

    转载自:【转载】IOS中延时执行的几种方式的比较和汇总_leisurehuang34_新浪博客 本文列举了四种延时...

  • ***线程,GCD,runloop(2)

    第三篇:多线程编程的多种方式 iOS执行多线程编程常用的有以下几种方式 NSThread GCD NSOperat...

  • 更可靠和高精度的 iOS 定时器

    定时器一般用于延迟一段时间执行特定的代码,必要的话按照指定的频率重复执行。iOS 中延时执行有多种方式,常用的有:...

  • GCD其它常用函数(四)

    一. 延迟执行 iOS常见的延时执行调用NSObject的方法 使用GCD函数(延迟并控制方法在哪个线程执行) 使...

网友评论

      本文标题:iOS延时执行的几种方式,附带GCD写的定时器

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