异步图像加载

时间:2011-07-19 15:24:03

标签: objective-c multithreading ipad background

我正在开发一个类似于内置照片应用的iPad应用程序。我已经使用NSThread detachNewThreadSelector来加载图像并设法将加载时间从12秒减少到6秒,仍然达不到我的预期。我怀疑,假设一个文件夹中有20个图像,创建了20个线程来加载图像。现在我正在考虑一次将它限制为5个线程,并且下一组线程应该仅在加载前5个图像之后才开始。有人可以告诉我该怎么做吗?非常感谢!

2 个答案:

答案 0 :(得分:3)

我不会很久:你应该明确地深入研究这个example from Apple。你会看到光。

答案 1 :(得分:3)

这听起来像是NSOperationQueue的完美任务。

首先,您创建并配置NSOperationQueue,并将其保存在ivar或全局变量中。然后,使用相同的选择器,目标和对象创建NSInvocationOperation,而不是使用detachNewThreadSelector:toTarget:withObject:,并将其添加到队列中。当线程可用时,队列将处理在后台线程池上启动操作。