我有一个表格,在关闭时不会释放资源。用什么工具我可以检查发生了什么?
答案 0 :(得分:4)
VS2012中有一个内置的分析器(可能取决于VS2012的版本)。微软也有免费的CLR Profiler for .NET 4
Red Gate是一款出色的memory profiler,我发现它比上述替代品更容易使用,但它不是免费的。有一个功能齐全的免费试用版,您可以用它来解决您的问题。
关于您的问题:表单的常见泄漏问题是事件处理程序。确保表单中没有任何事件处理程序与未处理的中心类相关联。
框架中还有一些恼人的错误,它们将中心窗口事件(例如“ui主题已更改”)附加到框架类中的静态字段。例如,这可能导致托管Windows窗体工具栏的类永远不会被垃圾回收。事件处理程序泄漏很难找到,所以它们甚至仍然存在于框架代码中是非常棘手的。