如果您已经在主线程上,那么在主线程上延迟分派(dispatch)代码块是否安全?
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, seconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), theBlock);
或者有更安全的方法吗?执行此操作时,如果我已经在主队列(主线程)上,是否需要执行任何检查?
最佳答案
如果 block 是异步入队的,您通常不必检查是否已经在主线程上,which dispatch_after
does :
This function waits until the specified time and then asynchronously adds block to the specified queue.
但是,您必须检查是否使用像 dispatch_sync
这样的同步函数。否则会导致僵局。
关于iphone - 如何使用 GCD 在主线程上延迟后安全地分派(dispatch)代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17363288/