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

本文关键字:何工作 工作 Dispose | 更新日期: 2023-09-27 18:07:52

可能重复:
IDisposable接口的正确使用
何时需要进行处置?

如果我编写了一个使用图形或线程的类,我必须实现IDisposable接口来编写Dispose((方法,否则就会发生内存泄漏吗?当GC到达Dipose((时,它会运行吗?如果我实现了Dispose((方法,那么当"Dispose"参数为true时,我应该对类中的所有可丢弃字段调用Dispose(?什么是"非托管资源"?

所以我对此很不确定,我很感激任何能帮助我理解这些事情的东西:(谢谢

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

IDisposable只是一种模式。它本身并没有做任何特殊的事情(除了满足using语句的要求(。

如果您使用的是本机资源,则垃圾收集器不会"知道"该资源。IDisposable是用于允许您决定性地释放此资源的约定。

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