在iphone OS中使用NSOperationQueue和NSOperation的问题

时间:2010-11-08 06:48:41

标签: iphone nsoperation nsoperationqueue

我使用NSOperation执行任务:使用NSURLConnection下载一些文件,然后合并花费大量CPU和内存的文件
我需要在新/后台线程中执行任务 所以我将一些这些任务添加到NSOperationQueue并设置maxConcurrentOperationCount = 2
但结果是合并文件时会阻塞主线程(UI暂时不响应) ,似乎没有在新/后台线程中激励  如何按照我的预期去做?

2 个答案:

答案 0 :(得分:1)

您在NSOperationQueue中进行了哪些类型的操作? Apple的NSOperationQueue文档包含以下注释:

  

注意:在iOS中,操作队列不会   使用Grand Central Dispatch执行   操作。他们分开创造   非并发操作的线程   并从中启动并发操作   当前的线程。进行讨论   并发的区别   和非并发操作以及如何操作   它们被执行,参见NSOperation Class Reference。

答案 1 :(得分:1)

由于您使用NSOperationqueue,因此您一次只有两个文件,并且只能合并它们,因为那里没有所有其他线程或文件。

因此,要将它们合并在一起,您必须将它们保持在一起。