23

NSOperationQueue を並行ではなくシリアルにするつもりです。

私が知っている1つの方法は次のとおりです。

NSOperationQueue *globalQueue;
globalQueue.maxConcurrentOperationCount =1;

他に方法はありますか?

4

1 に答える 1

20

シリアル キューが必要な場合は、maxConcurrentOperation を 1 に設定しています。新しいキューを作成する代わりに [NSOperationQueue mainQueue] を使用して、メイン スレッドで操作をキューに入れることもできます。ただし、これは非常に短い操作が追加され、ユーザー インターフェイスがブロックされない場合にのみ役立ちます。一方、スレッド n 同期について心配する必要はありません。

addOperations:waitUntilFinished:YES を使用するか、操作を追加するたびにメッセージ waitUntilAllOperationsAreFinished を送信して、任意のキューに操作を追加できます。そうすれば、キューをシリアルとして定義する代わりに、操作をシリアル化できます。

于 2013-02-21T06:56:19.730 に答える