操作和操作的同步和异步状态问题
问题描述:
我正在阅读OperationQueue上的文档。操作和操作的同步和异步状态问题
我有这个疑问,我们正在创建的操作BlockOperation和OperationQueue的同步和异步状态是什么。
正如我所理解的那样,它将作为同步操作运行,但如果我们想以异步方式运行它,我们必须使用dispatch.async以异步方式调度它。
我理解它吗?
答
由
OperationQueue
完成当块提交到
BlockOperation
回报(或者,如果你继承
Operation
main
法)
异步操作(即返回其isAsynchronous
财产true
)
同步操作可以看出,需注明在Operation
的子类中通过设置isFinished = true
手动完成(您还应该同时设置isExecuting = false
)。这允许您通过使用Dispatch.async
将您需要执行的任何工作分配给不同的队列,但仍保留在OperationQueue
中的操作。这对于构建依赖操作或仅允许某些操作并行运行很有用。
苹果的Operation docs对所有这一切都有很好的解释。
评论是不适合扩展讨论;这个对话已经[转移到聊天](http://chat.stackoverflow.com/rooms/139280/discussion-on-question-by-jean-luc-godard-sync-and-async-status-of-operation-和)。 –