OperationQueue.main与DispatchQueue.main

当您需要在网络任务或操作的完成块中的主线程上执行某些操作时,以下哪种方式最合适?为什么

  • OperationQueue.main.addOperation
  • DispatchQueue.main.async

有关这两种队列之间差异的详细信息,请参见Lion的答案

这两种方法都会奏效。但是,当需要更高级的调度(包括依赖项取消等)时,通常需要执行NSOperation。所以在这种情况下,一个简单的

DispatchQueue.main.async{/*do work*/}

会很好的。这相当于

dispatch\u async(dispatch\u get\u main\u queue(),^{/*do work*/});

在Objective-C中,这也是我使用该语言的方式

发表评论