【问题标题】:OutOfMemoryException while downloading files in WP8在 WP8 中下载文件时出现 OutOfMemoryException
【发布时间】:2014-02-06 05:03:17
【问题描述】:

当我尝试从 Windows 移动应用程序下载大文件(大小 >170 MB)时,我遇到了这个异常

System.Windows.ni.dll 中出现“System.OutOfMemoryException”类型的未处理异常

附加信息:内存不足,无法继续执行程序。

奇怪的是我只得到了少数文件的异常。这是我用来下载文件的代码

       hpubDownloader = new WebClient();
        hpubDownloader.OpenReadCompleted += (s, e) =>
        {
           //process response
        };
        hpubDownloader.DownloadProgressChanged += (s, e) =>
        {
            int value = e.ProgressPercentage;
            //show progress percentage , and it shows till 98 % after that it goes to exception App_Unhandled exception
        };
        hpubDownloader.OpenReadAsync(url);

这可能是什么原因?我没有得到有关异常的任何其他详细信息,甚至我尝试将 Try-catch 块放入 webclient 下载代码中,但这也没有触发。可能的原因是什么?

【问题讨论】:

  • 特定应用程序存在内存限制,如果您的文件大于 170MB,则意味着您的应用程序使用了所有分配的内存,并且没有更多空间来保存我们剩余的文件。
  • 关注下面发布的文章
  • 下载这么大的文件到内存的目的是什么?真的需要吗?这是一个电话应用程序。

标签: windows-phone-8


【解决方案1】:

关注这篇 MSDN 文章了解更多信息 - App memory limits for Windows Phone 8

【讨论】:

  • @Romasz 有没有办法覆盖这个限制?例如,如果我的手机内存为 512 MB,是否可以下载大小为 170 MB 的文件
  • @JMat 当然,您可以将这样的文件直接下载到 IsolatedStorage,但如果您想将其放入内存中 - 可能会出现问题。我怀疑是否有办法超越限制。
  • @JMat 当然,您可以增加内存,但您的设备中必须有所需的内存量....有关更多详细信息,您可以按照本文中发布的链接进行操作
  • @Pradeep 我可以看到如何禁用低内存手机应用程序中的功能。但我没有看到任何关于如何执行内存限制操作的解释
  • @Romasz 我该怎么做(直接保存到隔离存储 - 不保存到内存)?我在这里发布了一个问题stackoverflow.com/questions/21671157/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多