今天说说 非托管资源
老听人说到非托管资源,就提出 “例如:数据库连接,文件句柄……”,这话对不?当然不会错。msdn上也这样写着。很多书上也是这样贴着。但这句话会让新手误解。“数据库连接?那不就是Connection吗?”。对!他接触到的数据库连接就是SqlConnection之类。但这是非托管资源吗?不是!Connection肯定是托管资源。
所谓非托管资源是你通过P/Invoke之类方法得到的os资源,CLR没有办法帮你释放这些资源。如果你对这些资源提供了包装WrapSource。那么这个WrapSource是托管资源了。Connection正是这样的东东。他可能管理了非托管资源。但他自己是托管的。