3

我有一个在关闭时不会释放资源的表单。用什么工具我可以检查发生了什么?

4

1 回答 1

4

VS2012 中有一个内置的分析器(可能取决于 VS2012 的哪个版本)。Microsoft 还为 .NET 4 提供免费的 CLR Profiler

Red Gate 是一款出色的内存分析器,我发现它比上述替代品更易于使用,但它不是免费的。有一个功能齐全的免费试用版,您可以使用它来解决您的问题。

关于您的问题:表单的常见泄漏问题是事件处理程序。确保表单中没有任何事件处理程序耦合到未处置的中心类。

框架中还有一些令人讨厌的错误,它们将中央窗口事件(例如“ui 主题已更改”)附加到框架类中的静态字段。例如,这可能导致托管 Windows 窗体工具栏的类永远不会被垃圾收集。事件处理程序泄漏很难找到,以至于它们显然仍然存在于框架代码中。

于 2012-09-26T07:28:44.073 回答