.NET垃圾回收不能完全解决内存泄漏的原因

在.NET中,垃圾回收机制会将不可访问的内存(堆)进行回收。也就是说,当一些对象一直存在一个或多个指向
它的引用时,它们就不会被回收。这些对象有可能就是内存泄漏的隐患。
1. 非托管代码的存在
有些对象要求在不用的时候手动调用close() 或着dispose() 等释放内存的函数。没有调用它们或者没有放在
using语句块中将有可能导致内存泄漏。
或者当使用不安全的C++代码时,也有可能导致这个问题。
2. 静态全局变量
这些变量一般来说在进程的整个生命周期中将一直存在。特别是一些集合如ArrayList,它们的膨胀也将会导致
内存泄漏问题。
3. 事件
当一个事件被创建并注册了(+=)一些函数后,虽然程序退出了事件对象当前所在的代码区域,但这个引用会一直
存在。适当的时候对没用的事件进行取消注册(-=)是一个预防内存泄漏的好方法。
暂时就总结了这么多
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值