终结器(也称为析构函数)是垃圾回收(GC)的一部分-
它不确定(何时(甚至)发生),因为GC主要是由于内存压力(例如,需要更多空间)而发生的。终结器通常仅用于清理 非托管
资源,因为托管资源将具有自己的收集/处置。
因此
IDisposable用于 确定性地 清理对象,即现在。它不收集对象的内存(仍然属于GC),但是用于关闭文件,数据库连接等。
之前有很多主题:
- 确定性终结
- 放置物体
- 使用块
- 资源
最后,请注意,
IDisposable对象也具有终结器并不罕见。在这种情况下,
Dispose()通常调用
GC.SuppressFinalize(this),这意味着GC不会运行终结器-
它只会丢弃内存(便宜得多)。如果您忘记了
Dispose()该对象,则终结器仍将运行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)