博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

非托管资源

Posted on 2011-01-22 19:09  steve.z  阅读(268)  评论(0编辑  收藏  举报

 托管资源(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出来的对象占用的内存是托管资源。

扩展阅读: