iOS dispatch_after延时执行
程序员文章站
2022-05-29 12:02:48
...
dispatch_after函数并不是在指定时间之后才开始执行处理,而是在指定时间之后将任务追加到主队列中。
#pragma mark dispatch_after - (void)gcd_dispatch_after { //打印当前线程 NSLog(@"currentThread---%@",[NSThread currentThread]); NSLog(@"asyncMain---begin"); dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ //2.0秒后追加任务代码到主队列,并开始执行 //打印当前线程 NSLog(@"after---%@",[NSThread currentThread]); }); } //Swift版本 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3) { }
//2021-06-22 11:39:06.00000 GCD[2488:1146668] currentThread---<NSThread:0x283924dc0>{number = 1,name = main} //2021-06-22 11:39:06.00000 GCD[2488:1146668] asyncMain---begin //2021-06-22 11:39:08.00000 GCD[2488:1146668] after---<NSThread:0x283924dc0>{number = 1,name = main}
推荐阅读
-
iOS延迟执行方法详解
-
cmake ios终端下执行提示错误 iOS version not found, tested: [5.0;5.1;6.0;6.1;7.0;8.3]的解决方案
-
iOS中的多线程如何按设定顺序去执行任务详解
-
iOS当多个网络请求完成后执行下一步的方法详解
-
iOS延迟执行方法详解
-
对比分析iOS延迟执行的4种方式
-
IOS开发中延迟执行和取消
-
iOS中延时执行的几种方式比较及汇总
-
cmake ios终端下执行提示错误 iOS version not found, tested: [5.0;5.1;6.0;6.1;7.0;8.3]的解决方案
-
iOS当多个网络请求完成后执行下一步的方法详解