03-dispatch_after
1 dispatch_after 概念
在指定時間之後將任務追加到主佇列中。嚴格來說,這個時間並不是絕對準確的,但想要大致延遲執行任務,dispatch_after函式是很有效的。
NSLog(@"currentThread---%@",[NSThread currentThread]); // 列印當前執行緒
// 延時5秒執行任務
dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW,(int64_t)(5.0 * NSEC_PER_SEC));
dispatch_after(time, dispatch_get_main_queue(), ^{
// 5 秒之後將任務追加到主執行緒
NSLog(@"currentThread---%@",[NSThread currentThread]); // 列印當前執行緒
NSLog(@"我來延時了");
});
2 iOS 中 延時執行任務的方式常見的有
- NSTimer
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(doSomething) userInfo:nil repeats:NO];
-
performSelector afterDelay
[self performSelector:@selector(doSomething) withObject:self afterDelay:0.5];