我们正在使用 Prism 4 开发 WPF 应用程序,并且由于资源未释放而遇到严重的内存泄漏。我们正在使用 ANTS Memory Profiler 来检测哪些类阻止了垃圾收集器释放内存,但是我们对这个工具非常陌生,因此我们对其输出的理解有限。
我们的测试用例包括打开一个窗口,让您从列表中选择一个插件。该窗口包含一个 Wizard 控件,该控件包含一个标题、一组按钮和一个显示活动 WizardPage(即 UserControl)的主要区域。通过选择一个插件并单击 Next 按钮,更多 WizardPage 控件在 Wizard Region 中注册并使用 RegionAdapter 添加到 Wizard.Pages 集合中。然后,用户可以通过单击 Next/Previous 按钮来浏览页面。如果我们打开向导窗口并单击取消按钮,向导控件终结器将按预期调用。但是,如果我们在单击取消按钮之前打开向导窗口并展开插件 ComboBox,则永远不会调用向导控件终结器。这是 ANTS Memory Profiler 中向导的 Instance Categorizer 的屏幕截图:
我们几乎尝试了一切都没有成功,有人可以帮助我们了解这里发生了什么吗?
先感谢您。