由于 Window.EfectiveValues 保留导致内存泄漏

Dan*_*lba 4 .net c# wpf profiling garbage-collection

我的 WPF 应用程序出现内存泄漏。

我想对我的 DiffViewControl 进行 GC,但它由Window.EffectiveValues实例保留。 在此处输入图片说明

你知道我如何清理这个过时的引用然后 DiffViewControl 可以被 GC 处理吗?

Dan*_*lba 5

最后我在阅读这篇文章后找到了问题所在:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/1283a5da-48c2-4398-9064-a92f569d657d/wpf-textboxfocus-results-in-usercontrol-garbage-collection-problem?forum=wpf

我的问题是,如果我关闭 WPF 窗口,并且该窗口中的文本框具有焦点,则文本框会泄漏,因此整个窗口都会泄漏。

在我的情况下,解决方案在关闭窗口之前从窗口中的任何文本框中移除焦点。

Keyboard.ClearFocus();
Run Code Online (Sandbox Code Playgroud)