C#提供自动回收内存机制,那为什么有时候还要用dispose呢

如题
2025-05-13 12:16:27
推荐回答(2个)
回答1:

dispose用于显示的回收托管和非托管资源

托管资源指那些资源的回收工作由.net CLR 的GC 机制自动完成,无需显式释放的资源。比如int,string,float,DateTime等等对象,要说的是.net中超过80%的资源都是托管资源。

非托管资源指诸如包装操作系统资源的一类对象,例如文件,窗口或网络连接,对于这类资源虽然垃圾回收器(GC)可以跟踪封装非托管资源的对象的生存期,但它不了解具体如何清理这些资源。

回答2:

应该是回收时间上的差别吧。