如何知道谁在处理我的Bitmap对象或处置它的位置?

时间:2013-02-07 09:09:32

标签: c# .net visual-studio bitmap dispose

我的对象通过了一些复杂的管道,在它的某些部分,我没有代码,我需要知道在Dispose上调用Bitmap时的位置是什么!

2 个答案:

答案 0 :(得分:3)

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

不要忘记关闭调试>一般>启用我的代码。

答案 1 :(得分:0)

您不能对位图类(如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对象将帮助您识别它,但除了处理方法之外,您不能执行任何操作。