是否需要释放位图局部变量?

时间:2018-11-06 15:55:12

标签: c# bitmap dispose

我有下面的方法被调用。在其中创建一个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();
        }
    }

1 个答案:

答案 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()