什么是托管资源和非托管资源?

时间:2013-02-17 19:38:56

标签: .net

我们应该何时进行内存管理?我们如何为这两种资源进行操作? 托管和非托管资源的列表是什么? 我们真的需要担心内存泄漏吗?

1 个答案:

答案 0 :(得分:5)

托管资源是那些完全用.NET编写的资源。虽然通常不会受到经典内存泄漏的影响,但仍然可以通过不解除引用未使用的资源(the most common reason is to not un-register event handlers)来泄漏内存。

非托管资源通常是那些非纯.NET(并且在同一个进程中)的资源 - 例如:

  • COM组件
  • 数据库连接/交易
  • 窗口句柄
  • 文件系统句柄
  • 注册表处理
  • 网络连接
  • 等......等......

对于这些,您需要实施Dispose pattern, correctly并确保在使用完毕后妥善处置。

  

我们真的需要担心内存泄漏吗?

是的,我们确实需要担心它们,特别是在走出.NET之外。