我希望并行化某些类似于以下示例的代码。我试图将一个循环的10个连续迭代添加到块操作中,我面临的问题是只有第一个块被执行。
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];
答案 0 :(得分:-1)
在将数据提交到操作队列后,您将使用“removeAllObjects”从数组中删除操作。操作队列可能只保留数组,而不是复制它,因此删除操作会影响队列的行为。
只需删除该行就可以了。