我有一些缓慢的互联网任务来保存和加载文件,我想在一些后台线程中执行那些缓慢的任务。我想知道这是否可行,如果是,是否有任何示例代码?
然后在完成后,我希望它注意到主线程,以便我可以更新UI。
答案 0 :(得分:7)
看看NSURLConnection。它将在后台加载NSURL(使用NSURLRequest),并发送有关其状态的委托方法。
答案 1 :(得分:2)
登录iPhone开发人员中心并搜索线程编程简介。或者,也许您可以登录并使用此链接:
答案 2 :(得分:2)
最终,运行代码的设备只有一个处理器,无法加载大量(千兆字节)的数据。 Ben(NSURLConnection异步)建议的最佳路径可以为您提供额外的优势,即能够干净地取消和处理错误消息。虽然它不像你想象的那样在技术上具有线程,但它与事件循环很好地集成并且是非阻塞的。如果这仍然不够,我建议看看NSOperation和NSOperationQueue。您可以触发NSOperation子类对象并在那里执行下载(我仍然建议在那里异步执行它以便启用取消,暂停等)。
答案 3 :(得分:1)
如果您确定即使在使用异步HTTP调用来收集数据后也需要后台线程,请不要忘记将后台线程代码包装在新的NSAutoReelasePool中,然后在最后发布它。