非托管资源(Unmanaged Resource)是dot Net的一个概念,指诸如包装操作系统资源的一类对象(并非内存资源),例如文件,窗口或网络连接,对于这类资源虽然垃圾回收器(GC)可以跟踪封装非托管资源的对象的生存期,但它不了解具体如何清理这些资源。常见的非托管源有:
ApplicationContext,Brush,Component,ComponentDesigner,Container,Context,Cursor,
FileStream,Font,Icon,Image,Matrix,Object,OdbcDataReader,OleDBDataReader,Pen,
Regex,Socket,StreamWriter,Timer,Tooltip 等。
托管资源,是指由CLR管理分配和释放的资源,一般是托管内存。
非托管资源,是由系统分配和释放的资源。
一般地在CLR里new 一个对象或者分配一个数组都不需要手动去释放内存, 而如windows里的句柄资源常常需要手动释放,如字体、刷子、DC等。所有的Window内核对象(句柄)都是非托管资源,如文件句柄、套接字句柄、窗体句柄。。。太多了。
new出来的对象占用的内存是托管资源。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步