操作和操作的同步和异步状态问题

问题描述:

我正在阅读OperationQueue上的文档。操作和操作的同步和异步状态问题

我有这个疑问,我们正在创建的操作BlockOperation和OperationQueue的同步和异步状态是什么。

正如我所理解的那样,它将作为同步操作运行,但如果我们想以异步方式运行它,我们必须使用dispatch.async以异步方式调度它。

我理解它吗?

+0

评论是不适合扩展讨论;这个对话已经[转移到聊天](http://chat.stackoverflow.com/rooms/139280/discussion-on-question-by-jean-luc-godard-sync-and-async-status-of-operation-和)。 –

OperationQueue完成当块提交到 BlockOperation回报(或者,如果你继承 Operation main法)

异步操作(即返回其isAsynchronous财产true

同步操作可以看出,需注明在Operation的子类中通过设置isFinished = true手动完成(您还应该同时设置isExecuting = false)。这允许您通过使用Dispatch.async将您需要执行的任何工作分配给不同的队列,但仍保留在OperationQueue中的操作。这对于构建依赖操作或仅允许某些操作并行运行很有用。

苹果的Operation docs对所有这一切都有很好的解释。