2

我的对象通过一些复杂的管道传递,在它的某些部分,我没有代码,我需要知道Dispose在我的Bitmap!

4

2 回答 2

4

您可以System.Drawing.Image.Dispose从断点窗口添加断点。然后调试器将在被调用时停止Image.Dispose,您可以从“调用堆栈”窗口查看调用它的位置。

不要忘记关闭 Debugging > General > Enable Just My Code。

于 2013-02-07T09:20:11.510 回答
-1

您不能对位图类(例如inherit它)执行任何操作,然后在处置时引发事件,以便您可以捕获对象被处置的特定点。

但是,如果您正确使用一次性对象,您应该知道在哪里调用 dispose。

using(Bitmap b = new Bitmap(""))
{
  //Do some stuff with B
//Dispose is handled on end of using
}

或者你Dispose()自称的地方。

Bitmap b = new Bitmap("");
//Do some stuff with b
b.Dispose();

您最好将代码设置在您知道正在处理对象的位置。进入System.Drawing.Image对象将帮助您识别它,但除了 dispose 方法中您不能做任何事情。

于 2013-02-07T09:24:29.273 回答