.net 内存泄漏问题。如何";改为;根路径?
我有一个内存分析器和跟踪应用程序。 在该应用程序中,当我连续多次打开表单(6)时,应用程序变得不稳定,可能会关闭 怀疑有内存泄漏。因此,我跟踪以下根路径.net 内存泄漏问题。如何";改为;根路径?,.net,memory-leaks,.net,Memory Leaks,我有一个内存分析器和跟踪应用程序。 在该应用程序中,当我连续多次打开表单(6)时,应用程序变得不稳定,可能会关闭 怀疑有内存泄漏。因此,我跟踪以下根路径 如何读取此图以修复内存泄漏?我在堆栈顶部看到了许多EventHandler 内存泄漏的一个常见原因是实例直接由EventHandler生成。您的“泄漏”实例可能仅用作EventHandler的目标,并且没有其他方法可以访问它。他们甚至可能已经被处置了 我建议你使用这条小路。它可以捕获快照并自动指出一些常见的问题,如EventHandler使实
如何读取此图以修复内存泄漏?我在堆栈顶部看到了许多EventHandler 内存泄漏的一个常见原因是实例直接由EventHandler生成。您的“泄漏”实例可能仅用作EventHandler的目标,并且没有其他方法可以访问它。他们甚至可能已经被处置了
我建议你使用这条小路。它可以捕获快照并自动指出一些常见的问题,如EventHandler使实例保持活动状态。根位于顶部,控件/类位于底部。通常情况下,你会朝两个方向阅读,试图找到路径中的问题。如前所述,EventHandler是一个非常常见的问题。尤其是在静态环境中。也就是说,一些类通过+=钩住一个事件,并且再也不会解除钩住。只要两个组件(类和提供类的事件)都是非静态的,并且不保存在任何其他地方,这就没有问题 在您的示例中,UserPreferenceChanged事件似乎是问题所在,我猜这是一个静态事件。因此,UltraToolbarsManager(看起来也是静态的)连接了该事件。似乎UltraToolbarsManager还处理工具栏图标的所有单击事件。所以,问题是,您的类连接到一个ToolClick事件 可能的解决办法是
好的,最初您只是编写了
,我在堆栈顶部看到了很多EventHandler。EventHandler是否可以让实例保持活动状态?
这似乎是一个注释,但现在更好了。正如您所看到的,这是一个快照,我只想了解要执行的操作,或者如何“读取”问题)@serhio我知道这是一个快照。但是,它是否为您提供了识别导致泄漏的EventHandler所需的详细信息?问题中提供的所有信息都是一个堆栈。toolClick事件是原因,谢谢。我删除了这个自定义事件并直接使用了控件的事件。