NSOperationQueue *myQueue = [[NSOperationQueue alloc] init];
myQueue.MaxConcurrentOperationCount = 1;
[myQueue addOperationWithBlock: ^ {
NSLog(@"started");
[self aVeryLongOperation];
}];
并发操作的数量限制为一个,但是它们都开始了。假设添加了三个操作,控制台中的输出如下:
2014-09-09 17:51:02.705 Sample App [7356:7e03] started
2014-09-09 17:51:03.840 Sample App [7356:7e03] started
2014-09-09 17:51:04.495 Sample App [7356:7e03] started
如何将并发操作的数量实际限制为一个?
答案 0 :(得分:1)
事情就是在函数aVeryLongOperation
内部产生了一个后台线程,完成了所有工作。因此,该函数在产生该线程后立即返回,并且从队列中获取下一个任务以执行。