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) {
}
屏幕快照 2020-07-06 上午11.40.14.png
网友评论