C# 重新使用图像对象导致 OutOfMemory 异常

C# re-using image object leads to OutOfMemory exception

今天,我 运行 遇到了一点问题。 您可以在下面看到的图像对象不断给我一个内存不足的异常 当我遍历文件列表时。 我正在尝试列出每张图片的分辨率。

我试过处理它以从内存中删除对象,但这似乎不起作用....

List<string> temp = new List<string>();
Image img;
foreach(string s in fileArray)
            {
                img = Image.FromFile(s);
                temp.Add(img.Width.ToString() + "x" + img.Height.ToString());
                img.Dispose();
            }

很高兴您解决了问题!

仅供参考:每当您使用包装非托管资源的类型时,您都需要使用 using 块。细节: https://msdn.microsoft.com/en-us/library/yh598w02.aspx

这是用 using(和 var 而不是显式定义的类型)重写的示例

var temp = new List<string>();
foreach(var s in fileArray)
  using(var img = Image.FromFile(s))
  {
    temp.Add(img.Width.ToString() + "x" + img.Height.ToString());
  }