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

时间:2010-07-02 17:47:51

标签: .net wpf memory wpf-controls

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

2 个答案:

答案 0 :(得分:3)

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

另外如果我没有弄错CommandBindings,KeyGestures也会导致泄密。

尝试使用CLR Profiler。虽然我没有在WPF中使用它,但它已经为我节省了很多时间。但我很确定它可以处理它。

答案 1 :(得分:1)

您需要完全从父项中删除一个对象,以便对其进行垃圾回收。这也意味着事件( - = blah)。

即使这样做,对象可能仍然在内存中,直到下次扫描GC。

您可以强制调用GC,但不建议这样做。 http://msdn.microsoft.com/en-us/library/system.gc.aspx

相关问题