我有一个内存泄漏的WPF应用程序。现在,我知道绑定memoryleaks,DependencyObjects,InotifyPropertyChanged等。但是,在应用程序的某个地方,我忘了做正确的事情,从而将我的所有窗口保存在内存中。当那些窗户关闭时。
我有Visual Studio 2017 Enterprise,因此我可以创建内存快照并查看内存。但是:
一旦我深入了解托管内存的快照=>找到应该消失的窗口类=>看到引用计数与我打开和关闭该窗口的次数完全一样多=>看看root的路径 - 我迷失了。
有许多路径......如同很多。 TextBoxes,Borders,ContentPresenters等。但是,据我所知,所有结束都在[循环检测]中。我还没有找到一个进入主应用程序,绑定,事件处理程序或其他任何东西的路径。我的理解是,当路径以[循环检测]结束并且该链中没有任何地方是一个对象,该对象也有一条实际应该仍在内存中的路径,该路径不是内存泄漏的原因。
所以,这个树视图很有用,但是当你必须点击10000个路径打开时我觉得必须有一个更简单的方法。有没有人有一个关于如何使用这个令人难以置信的有用工具的指针,我实际上可以看到什么使WPF窗口保持在内存中?
由于