我正在尝试构建一个从远程服务器下载音频文件列表的移动应用程序(iOS和Windows)。
在使用不同的线程同时下载文件之前,是否需要考虑任何标准。 (基本上我需要同时下载7个文件。)
我发现在iOS的情况下有一个参数
“NSOperationQueueDefaultMaxConcurrentOperationCount”决定了 允许的并发操作数。还有其他参数吗? 在为iOS / Windows开发时我需要考虑
请指导我,我是移动开发的新手。
此致 罗伯特
答案 0 :(得分:0)
有趣的是here它指出NSOperationQueueDefaultMaxConcurrentOperationCount
内核在运行时管理的最大下载操作数,因此该值可以通过应用程序使用情况动态更改。我想如果下载不可能,那么就会抛出一个异常,你可以处理它。
WindowsPhone 8
WindowsPhone 8.1
UWP
一次有BackgroundDownloader
次上限 6 有效请求。
对于DownloadManager
/ OS
,您可以使用{{1}},然后让它为您管理。据报道here只发生 5 同时下载限制。
尽管平台细节可能限制/打开同时下载连接,但我会创建您自己的{{1}}类,允许您继续添加下载任务,而不管当前的下载队列如何。然后,此管理器类将能够为您处理整个下载过程,包括错误处理和特定下载跟踪/启动下载完成/失败的下载/通知。
在其中,您还可以为同时连接数量设置自己的限制,并将起始值基于每个平台所需的值,当然在{{1}}限制范围内。
为了安全起见,您可能永远不会想要使用可用的最大并发下载数量,并且少用一些,因此速度更快,用户体验更好。代码处理阻止下载的方案越好,如果您愿意,可以尽可能地最大化同时下载连接。