大对象堆和IDisposable

时间:2018-03-15 15:41:49

标签: c# .net

我正在使用.Net 4.0,我需要在程序工作期间创建大量图像。据我所知,存储在LOH中的图像。 Image.Dispose()方法是否在LOH中释放内存?我尝试使用分析器,我看到GC有很多SOH清理,但应用程序的内存使用量仍然增加。如果我打电话

,所有内存都会释放
GC.Collect(); 
GC.WaitForPendingFinalizers();

因此看起来图像的dispose方法不会释放LOH内存。

1 个答案:

答案 0 :(得分:1)

IDisposable是一种管理非托管资源(非托管内存或其他内容,如文件句柄)生命周期的机制。 LOH用于管理内存。所以是的,调用Dispose很可能对托管堆使用没有任何作用,因为这两件事情没有任何共同点。