(1)托管资源一般是指被CLR控制的内存资源,这些资源的管理可以由CLR来控制,例如程序中分配的对象,作用域内的变量等。
(2)非托管资源是CLR不能控制或者管理的部分,这些资源有很多,比如文件流,数据库的连接,系统的窗口句柄,打印机资源 等,这些资源一般情况下不存在于Heap(内存中用于存储对象实例的地方)中。
托管资源:从文字上看就是托付给别人管理,就像.NET的CLR,java的jvm
非托管资源:直接和os打交道,不知道这么说合理不?
classes which implement from "IDisposable" interface,
like "DbConnection" class, "BinaryReader" and I/O class,
"DbDataReader" class, ...etc.
if your object or instance has "Dispose" method,
always execute it in the "finally" block in your code.
楼上说的很好。
很赞成2楼的说法!
程序开发环境中区别
托管:系统必须有.NET框架,编译为中间语言,安全性好,开发高效
非托管:直接运行,编译为本地代码,灵活性好,受人为因素影响比较大
基本上你不会遇到非托管资源.
而当你需要用到非托管资源的时候,你自然就明白什么是非托管资源了.