依赖于非托管资源的常见.NET类

kma*_*ks2 -1 .net c# memory memory-leaks

我最近在.NET本机加密服务提供程序中遇到了一些内存泄漏问题,因为它依赖于非托管代码.我在SO上遇到的唯一另一件事就是这篇文章,但它没有得到太多细节,更不用说提供一个好的罪魁祸首了.

是的,如果它实现了IDisposable,它可能会在某个地方使用一些非托管资源,但是我想把一个列表放在一起,通常使用的是特定类,而不是简单地在Intellisense中查找Dispose.

我遇到的那些给我带来麻烦的是:

  • AesCryptoServiceProvider
  • ICryptoTransform的

其他依赖非托管资源的人是谁知道的?是否有任何特别阴险的那些看起来像是完全管理但不是?提前致谢.

Ree*_*sey 5

这些类的列表将是巨大的.大部分框架都包含本机Windows API调用,因此很多部分都包含本机资源的包装器.

这将包括大多数Stream实现,包装等待句柄的任何东西,大多数网络/套接字实现,以及大多数UI相关类(特别是包装HWND的任何东西).