当您需要在网络任务或操作的完成 block 中的主线程上执行某些操作时,以下哪种方法最合适,为什么?:
OperationQueue.main.addOperation
DispatchQueue.main.async
最佳答案
关于两种队列的区别,详见Lion的回答。
这两种方法都有效。然而,当需要更高级的调度(包括依赖、取消等)时,最需要NSOperation
。所以在这种情况下,一个简单的
DispatchQueue.main.async { /* do work */ }
会很好的。那相当于
dispatch_async(dispatch_get_main_queue(), ^{ /* do work */ });
在 Objective-C 中,这也是我在该语言中的做法。
关于ios - OperationQueue.main 与 DispatchQueue.main,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40764140/