WPF/Silverlight深度解决方案:(八)誓将内存释放到底

WPF/Silverlight应用程序长时间运行后会产生非常多的内存垃圾(内存泄露例外),特别是在经常需要进行Remove操作的粒子、动画、游戏等方面的应用,国外高手们提出的方案我归纳了一下主要有:

1)  UIElement控件实例= null

2)  定时调用GC.Collect()

3)  让控件继承Idisposable接口,并实现相应逻辑

最后需要注意以下几点:
     1、有add,就要有remove
     2、有+=,就要有-=
     3、有start就要有stop
     4、注意使用最新版本的SDK、Tools、ToolKits、插件等,它们会不断修复内存泄露bug

5、比如在LayoutRoot.Children.Remove(UIElement)后,再执行UIElement= null,对于释放UIElement对象非常有效,屡试不爽(当前前提是这个UIElement内部所有对象都已释放依赖)。

作者: 深蓝色右手
出处: http://alamiye010.cnblogs.com/
本系列目录及源码下载: 点击进入( 欢迎加入WPF/Silverlight小组  WPF/Silverlight博客团队)
本文版权归作者和博客园共有,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面显著位置给出原文连接,否则保留追究法律责任的权利。

你可能感兴趣的:(silverlight)