图像处理内存不足但有大量RAM

时间:2014-03-02 02:45:22

标签: c# .net wcf exception out-of-memory

我在处理图片时在我的C#应用​​程序中获得Out of Memory exception。我正在我的计算机上测试它,我有8GB的内存,比应用程序使用的方式多。

我查看了GC.TotalMemory(false)。在处理运行之前,它说(转换为MB) 2MB ,在没有等待垃圾收集之后,它说 4MB 。处理时,峰值达到 81 MB

我首先认为它与绑定限制有关,因为它在WCF服务中工作,但没有找到任何可能导致该异常的参数。

我认为我的应用程序在使用峰值时使用的81MP内存时应该没有问题,甚至更多。我做错了什么? - 谢谢。

运行处理的循环:

Parallel.For(0, count, i =>
   {
      Task<int>.Factory.FromAsync(proxy.BeginSaveImage(sp, new AsyncCallback(CompleteSave), state), proxy.EndSaveImage).ContinueWith(result => {});
});

并行运行并异步调用图像处理方法。

1 个答案:

答案 0 :(得分:2)

出于遗留原因,Image.FromFile将丢失无法读取的图像文件的内存异常。 见Is there a reason Image.FromFile throws an OutOfMemoryException for an invalid image format?

您的png可能无效并因类似原因而丢失了内存异常