随笔分类 - .net 内存泄漏汇总
摘要:永不终止的线程 我们已经讨论过了GC的工作方式以及GC root。我提到过实时堆栈会被视为GC root。实时堆栈包括正在运行的线程中的所有局部变量和调用堆栈的成员。 如果出于某种原因,你要创建一个永远运行的不执行任何操作并且具有对对象引用的线程,那么这将会导致内存泄漏。 这种情况很容易发生的一个例
阅读全文
摘要:错误的WPF绑定 WPF绑定实际上可能会导致内存泄漏。经验法则是始终绑定到DependencyObject或INotifyPropertyChanged对象。如果你不这样做,WPF将创建从静态变量到绑定源(即ViewModel)的强引用,从而导致内存泄漏。 这里是一个例子: <UserControl
阅读全文
摘要:很多开发者喜欢用缓存来提升访问速度和减轻数据库压力,但是盲目的缓存存在内存泄漏的风险!你可知道吗?下面我举个例子说明下常见问题: 大多数人喜欢用Dictionary做缓存,那我也那这个说明问题吧! //定义实体类woman public class Woman { //记录内存中Woman的数量 p
阅读全文
摘要:中心思想一句话:当观察者注册在了一个生命周期长于自己的事件主题上,观察者不能被内存回收。 举例:写了一个小Demo来说明问题,Form1窗体用来验证输入的数字是否为质数(大于1只能被1或自身整除的数是质数),垃圾回收按钮是在调用GC清理内存,并显示当前能存中对象的数量; 定义事件参数类型NumEve
阅读全文

浙公网安备 33010602011771号