为了账号安全,请及时绑定邮箱和手机立即绑定

在C#中使用IDisposable和析构函数有什么区别?

在C#中使用IDisposable和析构函数有什么区别?

一只斗牛犬 2019-11-08 10:21:57
什么时候在类而不是析构函数上实现IDispose?我读了这篇文章,但我仍然没有抓住重点。我的假设是,如果我在对象上实现IDispose,则可以显式地“销毁”该对象,而不是等待垃圾回收器执行此操作。这个对吗?这是否意味着我应该始终在对象上显式调用Dispose?常见的例子有哪些?
查看完整描述

3 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

在MSDN上有一个很好的描述:


此接口的主要用途是释放非托管资源。当不再使用托管对象时,垃圾收集器会自动释放分配给该对象的内存。但是,无法预测何时会发生垃圾回收。此外,垃圾收集器不了解 诸如窗口句柄或打开的文件和流之类的非托管资源。


使用此接口的Dispose方法 与垃圾回收器一起显式释放非托管资源。当不再需要该对象时,该对象的 使用者可以调用此方法。


查看完整回答
反对 回复 2019-11-08
  • 3 回答
  • 0 关注
  • 607 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信