我正在阅读有关OperationQueue的文档。
我有疑问,我们正在创建的操作,BlockOperation和OperationQueue的同步和异步状态是什么。
正如我所理解的那样,它将作为同步操作运行,但是如果我们想以异步方式运行它,我们必须使用dispatch.async以异步方式将其分发。
我理解对吗?
答案 0 :(得分:1)
当您提交给OperationQueue
的广告单元返回时,BlockOperation
同步操作将被视为完成(如果您继承main
,则会Operation
方法
异步操作(从true
属性返回isAsynchronous
)必须通过设置Operation
在isFinished = true
的子类中手动标记为已完成(您还应该同时设置isExecuting = false
)。这允许您使用Dispatch.async
将您需要做的任何工作分配到不同的队列,但仍然将操作保留在OperationQueue
中。这对于构建相关操作或仅允许一定量的操作并行运行非常有用。
Apple的Operation docs对所有这些都有很好的解释。