Rot*_*tem 8 c# dispose idisposable
我知道所有实现的对象IDisposable应该在不再需要时立即处理,以释放其非托管资源使用的内存.
我的问题涉及我知道的事实,直到主机进程本身终止为止.如果我处理它们会不会有任何区别?当进程死亡时,是否存在未释放内存的可能性?GDI对象怎么样?即使没有处理过程,GDI句柄是否会在进程死亡时被释放?
我完全明白,无论如何处理所有物体都是一种好习惯.我纯粹是出于好奇而问.
它取决于所讨论的对象(资源).
当进程终止所有非托管内存时,即使关联的终结器无法运行,也会释放文件句柄和其他OS资源.
但我不太确定数据库句柄,命名互斥体等.
所以,如果你可以认为这是安全的,不调用Dispose,你必须了解的资源类型,以及它如何涉及一种方法.更容易从一般原则中调用Dispose().
但这是一个理论论证,大多数课程都会使用SafeHandle : CriticalFinalizerObject.所以我认为这不是一个真正的实际问题.