非托管资源
很久没有更新了,最近计划写点概念性的东西。GC相关的。想解释一些概念。但一直没有时间好好整理。后来想既然是blog又不是什么专栏,那能都出长篇。所以决定想什么写什么。一端时间了素材有了再整理成文。而且,这个时候说的东西还能经过大家的验证。
今天说说 非托管资源
老听人说到非托管资源,就提出 “例如:数据库连接,文件句柄……”,这话对不?当然不会错。msdn上也这样写着。很多书上也是这样贴着。但这句话会让新手误解。“数据库连接?那不就是Connection吗?”。对!他接触到的数据库连接就是SqlConnection之类。但这是非托管资源吗?不是!Connection肯定是托管资源。
所谓非托管资源是你通过P/Invoke之类方法得到的os资源,CLR没有办法帮你释放这些资源。如果你对这些资源提供了包装WrapSource。那么这个WrapSource是托管资源了。Connection正是这样的东东。他可能管理了非托管资源。但他自己是托管的。
今天说说 非托管资源
老听人说到非托管资源,就提出 “例如:数据库连接,文件句柄……”,这话对不?当然不会错。msdn上也这样写着。很多书上也是这样贴着。但这句话会让新手误解。“数据库连接?那不就是Connection吗?”。对!他接触到的数据库连接就是SqlConnection之类。但这是非托管资源吗?不是!Connection肯定是托管资源。
所谓非托管资源是你通过P/Invoke之类方法得到的os资源,CLR没有办法帮你释放这些资源。如果你对这些资源提供了包装WrapSource。那么这个WrapSource是托管资源了。Connection正是这样的东东。他可能管理了非托管资源。但他自己是托管的。