我使用NSOperation执行任务:使用NSURLConnection下载一些文件,然后合并花费大量CPU和内存的文件
我需要在新/后台线程中执行任务
所以我将一些这些任务添加到NSOperationQueue并设置maxConcurrentOperationCount = 2
但结果是合并文件时会阻塞主线程(UI暂时不响应)
,似乎没有在新/后台线程中激励
如何按照我的预期去做?
答案 0 :(得分:1)
您在NSOperationQueue中进行了哪些类型的操作? Apple的NSOperationQueue文档包含以下注释:
注意:在iOS中,操作队列不会 使用Grand Central Dispatch执行 操作。他们分开创造 非并发操作的线程 并从中启动并发操作 当前的线程。进行讨论 并发的区别 和非并发操作以及如何操作 它们被执行,参见NSOperation Class Reference。
答案 1 :(得分:1)
由于您使用NSOperationqueue,因此您一次只有两个文件,并且只能合并它们,因为那里没有所有其他线程或文件。
因此,要将它们合并在一起,您必须将它们保持在一起。