Kei*_*ith 5 .net gdi out-of-memory
我有一个使用.NET 3.5 SP1编写的应用程序,它从外部站点下载图像并将其显示给最终用户.在罕见的情况下,我的用户遇到OutOfMemory错误,因为他们正在下载巨大的图像.有时,与这些图像相关联的原始数据很大,但更常见的是,图像的尺寸很大.我意识到我可能永远无法解决这些OOM错误被抛出特定图像的事实.但是,如果我能以某种方式确定在我尝试加载图像之前加载特定图像是否会导致OOM问题,那将非常有用.
将图像的数据加载到Stream中,然后通过调用System.Drawing.Image.FromStream(stream)将图像本身转换为System.Drawing.Image.我没有选择先将这些图像存储在磁盘上.它们必须通过内存加载.
如果有人有任何提示或建议可以让我检测到加载图像会导致OOM异常,我会非常感激.
OutOfMemory 是您没有很多好的选择的例外情况之一。任何能够最终预测您将得到异常的东西可能都必须生成异常。
我想说,最好的选择是分析行为并创建您自己的预测规则集,或者简单地将最大大小硬编码到您的应用程序中。它并不漂亮,但它会带你到达那里。
| 归档时间: |
|
| 查看次数: |
340 次 |
| 最近记录: |