.net - TabControl.Items.Remove(TabItem) 不会释放 TabItem 使用的内存

标签 .net wpf memory wpf-controls

我有一个 WPF 应用程序,当我使用 TabControl.Items.Remove(TabItem)TabControl 关闭 TabItem 时,该应用程序不会释放TabItem 使用的内存。它只是使 TabItem 不可见,并且 TabItem 对象仍然保留在内存中。有没有办法从内存中删除这个 TabItem 对象?任何帮助将不胜感激。

最佳答案

据我所知,所有事件处理程序都必须“分离”,您还应该释放 tabItem 上的所有绑定(bind)。

另外,如果我没有记错的话,CommandBindings、KeyGestures 也可能导致泄漏。

尝试使用 CLR 探查器。尽管我没有将它与 WPF 一起使用,但它多次为我节省了很多时间。但我很确定它可以处理它。

关于.net - TabControl.Items.Remove(TabItem) 不会释放 TabItem 使用的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3167943/

相关文章:

c# - 如何在 .Net WPF 应用程序中使用 Serilog 自动尾部(删除)旧日志?

wpf - 如何从 ViewModel 访问 MetroWindow 的 ShowMessageAsync 方法

java - 如何避免 string.intern() 争用并保持低内存占用?

android - 清除内存不足异常的堆内存

c# - Keyboard.GetKeyStates 误报,我如何真正知道是否按下了某个键?

c# - 另一个 "There is already an open DataReader associated......"

c# - 使用定时器实现双击事件

c# - 从路径中删除“..”和相关文件夹的最快方法?

c# - 在 XAML 中查找打开的窗口

c - 调试无效的 free()