Synchronbetrieb wird durch OperationQueue
als abgeschlossen angesehen werden, wenn der Block, den Sie BlockOperation
zurückkehrt (oder main
Methode, wenn Sie Operation
Unterklasse) einreichen
Asynchronous Betrieb (das heißt true
von seiner isAsynchronous
Eigenschaft zurückkehrt), müssen gekennzeichnet werden wie fertig manuell in einer Unterklasse von Operation
durch Einstellung isFinished = true
(Sie sollten auch isExecuting = false
gleichzeitig einstellen). Auf diese Weise können Sie mithilfe von Dispatch.async
alle anfallenden Arbeiten an eine andere Warteschlange senden, die Operation bleibt jedoch weiterhin OperationQueue
. Dies ist nützlich, um abhängige Operationen zu erstellen oder um zu ermöglichen, dass nur bestimmte Operationen parallel ausgeführt werden.
Apples Operation docs haben gute Erklärungen für all dies.
Kommentare sind nicht für längere Diskussionen; Diese Konversation wurde [in den Chat verschoben] (http://chat.stackoverflow.com/rooms/139280/discussion-on-question-by-jean-luc-godard-sync-and-async-status-of-operation- und). –