1

我们什么时候应该进行内存管理以及我​​们如何对这两种类型的资源进行管理?托管和非托管资源的列表是什么?我们真的需要担心内存泄漏吗?

4

1 回答 1

5

托管资源是完全用 .NET 编写的资源。尽管通常不会发生经典的内存泄漏,但仍然可以通过不取消引用未使用的资源来泄漏内存(最常见的原因是不取消注册事件处理程序)。

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

  • COM 组件
  • 数据库连接/事务
  • 窗把手
  • 文件系统句柄
  • 注册表句柄
  • 网络连接
  • 等等……等等……

对于这些,您需要Dispose正确实施该模式,并确保在使用完它们后正确处理它们。

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

是的,我们确实需要担心它们,尤其是在 .NET 之外时。

于 2013-02-17T19:40:57.327 回答