xbap应用程序中的内存泄漏

时间:2009-08-26 05:02:55

标签: wpf memory-leaks

我们通过继承WPFcontrols作为基础并根据需要定制它来使用许多自定义控件。

但是,即使关闭了使用控件的页面,这些控件使用的内存也不会被释放,直到整个应用程序关闭为止。

随着越来越多的内存被阻止,这些应用程序必须工作一整天,性能会下降。

当我们分析我们的页面时,我们发现控件没有被收集,因为那里有一些绑定引用或某些边框或画笔等没有从该控件中清除。

我们尝试使用控件的Unload事件来从控件中删除事件和一些引用。这在一定程度上减少了泄漏,但这减缓了页面的关闭,当控制甚至崩溃时,卸载事件也被触发。

还有其他方法可以克服泄漏吗?是否有任何防止内存泄漏的最佳实践?

由于

Arvind的

1 个答案:

答案 0 :(得分:1)

您使用的是静态会员吗? (特别是收藏和活动)

如果是这样,请务必在卸下控件时将其删除。

编辑:我的意思是在你完成一个控件(当它的页面被关闭)之后,你应该从可视树中删除它,调用Dispose on it,并使用内存分析器确保它没有被引用到任何地方。

使用内存分析器找出泄漏的对象及其原因。