首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单独线程上的NSURLDownload委托方法

单独线程上的NSURLDownload委托方法
EN

Stack Overflow用户
提问于 2009-09-08 19:06:55
回答 2查看 1.4K关注 0票数 1

有没有人知道有一种方法可以在单独的线程上接收NSURLDownload的委托方法,即不是主线程?我正在使用一个NSOperationQueue来管理它们,但是现在我需要使用performSelectorOnMainThread方法来让它工作起来。这样做的问题是,它会使内核任务变得疯狂,达到大约30%的CPU周期。奇怪的是,这只是在升级到SL之后才发生的,当时NSOperationQueue改变了行为(并不是我不喜欢它,GCD太棒了!)

谢谢科林

EN

回答 2

Stack Overflow用户

发布于 2009-09-20 09:14:33

我的第一个问题是,你使用NSURLDownload做什么?你只是把一堆文件下载到磁盘上,还是你真的想把数据放在内存中?

  • 如果你要把一堆文件下载到磁盘上,并且你不想做任何特殊的处理,我会先试着触发主线程上的所有NSURLDownloads,而不是NSOperationQueue……我是说,我们说的是多少次手术?它们都可以并发运行吗?主线程上的回调应该不是太大的问题,除非当你正在做一些重量级的事情时,你得到了一些数据,在这种情况下,我似乎会切换到使用NSURLConnection。它有专门的文档,可以在你设置它的线程上回调你,而且更灵活。当然,它的级别不高,所以如果您真的希望将文件保存到磁盘上,则必须自己编写I/O。这应该不是一个很大的困难--它就像是额外的四行代码。

-W

票数 2
EN

Stack Overflow用户

发布于 2009-09-08 19:32:40

NSOperationQueue改变了行为,因为它有buggy。它现在看起来真的很坚固,但是的,它有不同的个性。参考(http://www.mikeash.com/?page=pyblog/dont-use-nsoperationqueue.html)

你能提供更多关于你的问题的信息吗?你只需要在下载完成时通知吗?你是不是一次下载了很多次?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1395769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档