2012-01-05 9 views
0

次のサンプルに類似した特定のコードを並列化します。私は、ブロック操作にループの10の連続反復を追加しようとしています、私が直面している問題は、最初のブロックが実行されているだけです。NSOperation Queueに複数の操作を追加するにはどうすればよいですか?

 
NSMutableArray *arrayOfOps=[[NSMutableArray alloc] init];

for (int i=0; i<totalCount()+10; i=i+10) { NSBlockOperation *op=[NSBlockOperation blockOperationWithBlock:^{ for (int hh=i; (hh<=10)&(hh<totalCount); hh++) { //some code } }]; [arrayOfOps addObject:op]; } [OperationQueue addOperations:arrayOfOps waitUntilFinished:YES]; [arrayOfOps removeAllObjects]; [arrayOfOps release];

答えて

-1

あなたは、操作キューにそれを提出した後、「removeAllObjects」を持つ配列からの操作を削除しています。操作キューはおそらく配列をコピーするのではなく保持するだけなので、操作を削除するとキューの動作に影響します。

その行を削除するだけでOKです。

+1

前提条件...仮定...いくつかの最小限の研究をしましょうか? __ [here](https://developer.apple.com/reference/foundation/operationqueue)__ it says:_ "キューに追加された後、操作は明示的にキャンセルされるか、タスクの実行が終了するまでそのキューに残ります"_ – holex

+1

@holexあなたが最小限の研究をしたことがあるなら、あなたは質問と回答が5歳であることが分かりました。それは本当にあなたのエネルギーの価値があるのですか? – fishinear

+0

あなたは時代遅れの回答をいつでも削除または更新できます。 – holex

関連する問題