Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何知道谁正在处理我的位图对象或它已被处理到哪里?_C#_.net_Visual Studio_Bitmap_Dispose - Fatal编程技术网

C# 如何知道谁正在处理我的位图对象或它已被处理到哪里?

C# 如何知道谁正在处理我的位图对象或它已被处理到哪里?,c#,.net,visual-studio,bitmap,dispose,C#,.net,Visual Studio,Bitmap,Dispose,我的对象通过一些复杂的管道,在它的某些部分,我没有代码,我需要知道在我的位图上调用Dispose时的位置 您可以从断点窗口在System.Drawing.Image.Dispose上添加断点。然后,调试器将在调用Image.Dispose时停止,您可以从调用堆栈窗口查看调试器的调用位置 不要忘记关闭调试>常规>仅启用我的代码。您不能对位图类执行任何操作,例如继承它,然后在dispose上引发事件,以便捕获对象被处置的特定点 但是,如果正确使用一次性对象,则应该知道在何处调用dispose usi

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

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


不要忘记关闭调试>常规>仅启用我的代码。

您不能对位图类执行任何操作,例如继承它,然后在dispose上引发事件,以便捕获对象被处置的特定点

但是,如果正确使用一次性对象,则应该知道在何处调用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方法中的操作外,您无法执行任何操作。

它是否正在被处置?如果它在某个第三方库的深处,你就不知道它在哪里。我有其他库的pdb,并且没有混淆!我需要知道函数名,至少在哪里调用dispose。如果下载.NET源代码,可以在.NET源代码中设置断点,然后只需在位图dispose方法中设置断点,并查看堆栈跟踪下载它的位置以及如何绑定它?我需要一些链接来指导我,非常感谢!我当然知道Dispose,但我需要知道Dispose的调用点,我正在尝试@idursun solution,我认为它会解决这个问题!是的,我已经在上面解释过,这两个区域将不可避免地调用
Dispose
。进入该方法只会强制执行这一点。