可能重复:
Proper use of the IDisposable interface
When is Dispose necessary?
如果我编写一个使用图形或线程的类,我必须实现IDisposable接口来编写Dispose()方法,否则会发生内存泄漏? 当GC到达时,Dipose()会运行吗? 如果我实现了Dispose()方法,当“disposing”参数为true时,我应该在类中的所有一次性字段上调用Dispose(),还是自动? 什么是“非托管资源”?
所以我很不确定,我很感激能帮助我理解这些东西:) 谢谢
答案 0 :(得分:0)
IDisposable
只是一种模式。它本身并没有做任何特殊的事情(除了符合using statement的要求之外)。
如果您正在使用本机资源,则资源不会被垃圾收集器“知道”。 IDisposable
是用于允许您确定性地释放此资源的约定。
有关详细信息,我编写了一个detailed series on IDisposable,其中讨论了为什么以及如何在各种场景中实现它(包括包装本机资源,封装其他IDispsable类型等)。