我正在编写一个 Windows Phone 应用程序,它需要下载非常大的 mp3 文件,并将它们保存到独立的存储中。我已经得到了所有的代码,我用较小的文件对其进行了测试,但是现在使用实际的文件并使用调试输出监视代码正在做什么,我意识到线程实际上在中途退出下载,并且文件从未真正完成下载。
发生这种情况是否有原因,如果有,我能做些什么来防止这种情况发生?
我正在编写一个 Windows Phone 应用程序,它需要下载非常大的 mp3 文件,并将它们保存到独立的存储中。我已经得到了所有的代码,我用较小的文件对其进行了测试,但是现在使用实际的文件并使用调试输出监视代码正在做什么,我意识到线程实际上在中途退出下载,并且文件从未真正完成下载。
发生这种情况是否有原因,如果有,我能做些什么来防止这种情况发生?
多久后超时?如果您使用 HttpWebRequest 下载文件,则默认超时为 100,000 毫秒(100 秒)。这可以像插入一样简单地更改:
HttpWebRequest.Timeout = 10;
显然设置您自己的超时(以毫秒为单位!)并将其附加到您的 WebRequest :)
如果您不使用 HttpWebRequest,请告诉我您在使用什么,我会尽力帮助您:)
WP 的内部存储器和进程管理负责这一点。如果您从您的应用程序中生成了一个线程,该线程在后台操作系统中下载了大量数据,那么当其他进程需要这些资源(大多数情况下是内存)时,会将其丢弃。
您可以做两件事,具体取决于您的下载方法: