2017-03-26 2 views
0

Ich lese Dokumente auf OperationQueue.Sync und Async-Status von Operation und OperationQueues

Ich habe diesen Zweifel, was ist der Sync-und Async-Status der Operation, BlockOperation und OperationQueue erstellen wir.

Wie ich es verstehe, wird es als Sync-Vorgang ausgeführt, aber falls wir es in async Weise ausführen möchten, müssen wir es in async Weise mit dispatch.async versenden.

Versteh ich es richtig?

+0

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). –

Antwort

1

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.