oc/swift dispatch_after

1,453 阅读1分钟

** 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) {        
}