C# Windows Phone资源密集型任务正在退出

C# Windows Phone资源密集型任务正在退出,c#,silverlight,windows-phone-7,scheduled-tasks,background-agents,C#,Silverlight,Windows Phone 7,Scheduled Tasks,Background Agents,我正在编写一个Windows Phone应用程序,它需要下载非常大的mp3文件,并将它们保存到独立的存储中。我已经准备好了所有的代码,并用较小的文件进行了测试,但是现在使用实际的文件并使用调试输出监控代码的执行情况,我意识到线程实际上是在下载的中途退出的,而文件实际上从未完成下载 发生这种情况的原因是什么?如果是,我可以做些什么来防止这种情况发生?它会超时多长时间?如果使用HttpWebRequest下载文件,默认超时时间为10000ms(100秒)。只需插入以下内容即可更改: HttpWebR

我正在编写一个Windows Phone应用程序,它需要下载非常大的mp3文件,并将它们保存到独立的存储中。我已经准备好了所有的代码,并用较小的文件进行了测试,但是现在使用实际的文件并使用调试输出监控代码的执行情况,我意识到线程实际上是在下载的中途退出的,而文件实际上从未完成下载


发生这种情况的原因是什么?如果是,我可以做些什么来防止这种情况发生?

它会超时多长时间?如果使用HttpWebRequest下载文件,默认超时时间为10000ms(100秒)。只需插入以下内容即可更改:

HttpWebRequest.Timeout = 10;
显然,设置自己的超时(以毫秒为单位!)并将其附加到WebRequest:)


如果您不使用HttpWebRequest,请告诉我您在使用什么,我会尽力帮您解决:)

WP的内部内存和进程管理会解决这个问题。如果你从你的应用程序中产生了一个线程,在后台下载了大量数据,那么当其他进程需要这些资源(很可能是内存)时,操作系统会将其删除

根据您的下载方式,您可以做两件事:

  • 当缓冲区达到一定大小时,在IsolatedStorage中定期保存缓冲区块,从而限制线程的内存使用
  • 实现下载线程作为后台任务,这应该允许“无休止”的执行

  • 我正在使用HttpWebRequest,但是,我找不到属性。超时?@AllFallD0wn请看一看,我没有安装WP7 SDK,因此我自己无法播放:(我认为ScheduledAgent是一个后台任务,如果是这样的话,下载已经是一个后台任务了,但是下载过程中3个线程一直在退出。我没有精确计时,但不是10分钟。更像是4个,可能是5个?