iPhone:NSOperationQueue连续运行操作

Gre*_*tic 4 concurrency multithreading nsoperation nsoperationqueue

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

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

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

谢谢.

Dav*_*har 6

根据NSOperationQueue类,引用NSOperationQueueDefaultMaxConcurrentOperationCount意味着"默认的最大操作数由NSOperationQueue对象根据当前系统条件动态确定." 我没有看到任何说默认值> 1(特别是在单CPU系统上).

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