4

我有一个单例 NSOperationQueue 来处理我所有的网络请求。但是,我注意到,当我运行一个特别长的操作(此特定操作至少需要 25 秒)时,我的其他操作在完成之前不会运行。

maxConcurrentOperationCount 设置为 NSOperationQueueDefaultMaxConcurrentOperationCount,所以我认为这不是问题所在。

为什么会发生这种情况?除了产生多个 NSOperationQueues (我不确定是否可行的解决方案,我也不确定这是一个好主意),解决此问题的最佳方法是什么?

谢谢。

4

1 回答 1

6

根据NSOperationQueue 类引用的NSOperationQueueDefaultMaxConcurrentOperationCount意思是“默认的最大操作数是由 NSOperationQueue 对象根据当前系统条件动态确定的”。我没有看到任何说默认值将大于 1 的内容(尤其是在单 CPU 系统上)。

尝试调用-setMaxConcurrentOperationCount:显式设置更大的值,看看是否有帮助。

于 2010-04-28T03:53:30.257 回答