iPhone:NSOperationQueue连续运行操作

时间:2010-04-28 00:34:56

标签: concurrency multithreading nsoperation nsoperationqueue

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

maxConcurrentOperationCount设置为NSOperationQueueDefaultMaxConcurrentOperationCount,所以我不相信这是问题。

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

感谢。

1 个答案:

答案 0 :(得分:5)

根据the NSOperationQueue class reference NSOperationQueueDefaultMaxConcurrentOperationCount表示“默认的最大操作数由NSOperationQueue对象根据当前系统条件动态确定。”我没有看到任何说默认值为> 1(特别是在单CPU系统上)。

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