【发布时间】:2014-09-09 16:06:12
【问题描述】:
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-NSLog(@"ended");之后添加一条日志语句。输出是什么? -
按照编写的代码,您似乎正在创建三个 NSOperationQueue。并发操作限制是每个队列。
-
是的,我确实在创建三个 NSOperationQueue。所以我改变了这一点,将“myQueue”作为一个属性,但不幸的是控制台日志是一样的。
标签: ios objective-c nsoperation nsoperationqueue