9

NSOperationQueue を並べ替える方法を探しています。

すべての操作をキャンセルして、必要な順序で元に戻すことができましたが、もう少しクリーンなものを望んでいました。何かご意見は?

4

2 に答える 2

21

NSOperationQueueと基礎となる GCD キューの主な違いはNSOperation、操作間の依存関係をサポートすることです。NSOperationQueueすべての依存関係が完了するまで、操作をスケジュールしません。使用可能な操作のうち、最も優先度の高い操作が次に実行するために選択されます。

オペレーション キューは複数のオペレーションを同時に実行する場合があるため ( に従ってmaxConcurrentOperations)、キューには厳密な順序はありません。依存関係 API を使用するか、操作の優先度を変更する方がはるかに優れています。

操作をキューに追加した後、依存関係と優先度を変更できると思います。

于 2010-01-26T18:36:15.507 に答える
6

キュー内の操作を並べ替える機能はありません。ある操作が別の操作の後に続く必要があることを表現する必要がある場合は、依存関係 API を使用してください。

詳細については、NSOperationQueueのドキュメントを参照してください。概要の最初の 2 つの段落では、依存関係について説明します。

于 2010-01-26T18:33:19.477 に答える