.Dispose()如何在C#中工作?

可能重复:
正确使用IDisposable接口
Dispose何时需要?

如果我编写一个使用图形或线程的类,我是否必须实现IDisposable接口来编写Dispose()方法,否则会发生内存泄漏? 当GC达到它时,Dipose()会运行吗? 如果我实现了一个Dispose()方法,当“disposing”参数为true或者它是自动的时,我应该在类中的所有一次性字段上调用Dispose()吗? 什么是“非托管资源”?

所以我很不确定,我会很感激任何能帮助我理解这些东西的东西:)谢谢


IDisposable只是一种模式。 它本身并不做任何特殊的事情(除了符合使用陈述的要求外)。

如果您正在使用本地资源,则垃圾收集器不会“知道”该资源。 IDisposable是用于允许您确定性地释放此资源的惯例。

有关详细信息,我编写了一个关于IDisposable的详细系列,其中讨论了为什么以及如何在各种情况下实现它(包括包装本地资源,封装其他IDispsable类型等)。

链接地址: http://www.djcxy.com/p/54477.html

上一篇: How does .Dispose() work in C#?

下一篇: Is this how to "Implement IDisposable correctly"?