1。自带的延时(非GCD)
- (void) printString:(NSString *)paramString{
NSLog(@"%@", paramString);
}
-(void)actionDelay {
[self performSelector:@selector(printString:) withObject:@"Grand Central Dispatch" afterDelay:3.0];
}
2。GCD延时-dispatch_after , dispatch_after_f 同步操作dispatch_time_t : dispatch_t ( baseTime , addTime )
dispatch_after ( delayTime , queue , block )
dispatch_after_f (delayTime , queue , parameter , C_function )
e.g.
double delayInSeconds = 2.0;
dispatch_time_t delayInNanoSeconds = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_after(delayInNanoSeconds, concurrentQueue, ^(void){
/* Perform your operations here */
});
本文详细介绍了如何在iOS应用中利用Grand Central Dispatch进行延时操作,包括非GCD的简单延时实现以及使用dispatch_after和dispatch_after_f进行更复杂的同步延时任务。通过实例演示了如何在指定延迟后执行特定操作,同时提供了关键参数的解释,如dispatch_time_t用于计算时间戳,以及如何选择合适的队列进行延时任务。
2448

被折叠的 条评论
为什么被折叠?



