我有一个类似乎递归地将EventHandler添加到事件中。我查看了代码但是没有AddHandler
,并且只有一个方法带有Handles
子句。
在内存分析器中,它显示事件处理程序正在调用正在调用事件处理程序的事件处理程序,以此类推,执行相当多的步骤。
这可能是什么原因造成的?为了解决这个问题,有什么方法可以解决这个问题呢?
P.S。我是这个整个记忆分析的新手,所以要轻视我;)。
答案 0 :(得分:1)
听起来更像是有一个偶数,其处理程序再次触发事件。告诉它的最简单方法是在处理程序中设置断点,看看它是否意外地重新进入处理程序。如果是这样,你可以查看堆栈跟踪并找出你正在做什么来再次触发事件。
如果这是一个可能受暂停影响的事件(例如Paint
),您也可以写入处理程序中的Console
并打印出Environment.StackTrace
以获取快照而不暂停执行。