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());
}
今天,我 运行 遇到了一点问题。 您可以在下面看到的图像对象不断给我一个内存不足的异常 当我遍历文件列表时。 我正在尝试列出每张图片的分辨率。
我试过处理它以从内存中删除对象,但这似乎不起作用....
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());
}