我有下面的方法被调用。在其中创建一个Bitmap局部变量,然后将其作为参数传递给自定义类的实例。我的疑问是:是否必须处置位图对象?
public void AddSnapshot(int width, int height)
{
Bitmap bmp = null;
try
{
bmp = new Bitmap(width, height);
MyClass mc = new MyClass(bmp);
}
catch (Exception)
{
if (bmp != null) bmp.Dispose();
}
}
答案 0 :(得分:1)
重新了解MSDN,不仅在这种情况下,还应该将其处置。
”在释放最后一个引用之前,请始终致电Dispose。 图片。否则,它所使用的资源将在以下情况下释放: 垃圾收集器将调用Image对象的Finalize方法。”
通过以下方式进行操作:
bitmap.Dispose();
关于:https://docs.microsoft.com/de-de/dotnet/api/system.drawing.bitmap?view=netframework-4.7.2
位图是从Image派生的,MSDN表示您应该在Images上调用Dispose()
。