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

时间:2015-02-12 13:34:02

标签: c# image exception

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

我已经尝试将其从内存中删除,但这似乎不起作用....

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();
            }

1 个答案:

答案 0 :(得分:0)

很高兴您解决了问题!

仅供参考:每当您使用包装非托管资源的类型时,您将需要使用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());
  }