0

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

4

2 回答 2

1

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

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

于 2012-08-30T10:11:59.567 回答
1

您在 NSOperationQueue 中放入什么类型的操作?Apple 的 NSOperationQueue 文档包括以下说明:

注意:在 iOS 中,操作队列不使用 Grand Central Dispatch 来执行操作。它们为非并发操作创建单独的线程,并从当前线程启动并发操作。有关并发和非并发操作之间的区别以及它们如何执行的讨论,请参阅 NSOperation 类参考。

于 2010-11-08T19:44:22.140 回答