![](/img/trans.png)
[英]Clarifications needed for concurrent operations, NSOperationQueue and async APIs
[英]NSOperationQueue not limiting concurrent operations
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
我实际上如何将并发操作数限制为仅一个?
问题是在函数aVeryLongOperation
内部产生了一个后台线程,在该线程上完成了所有工作。 因此该函数在产生该线程后立即返回,并且从队列中执行下一个任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.