这个问题在这里已有答案:
我正在使用.Net 4.0,我需要在程序工作期间创建大量图像。据我所知,存储在LOH中的图像。 Image.Dispose()方法是否在LOH中释放内存?我尝试使用分析器,我看到GC有很多SOH清理,但应用程序的内存使用量仍然增加。如果我打电话,所有内存都会释放
GC.Collect();
GC.WaitForPendingFinalizers();
所以看起来像图像的配置方法不释放LOH内存。
IDisposable
是一种管理非托管资源(非托管内存或其他内容,如文件句柄)的生命周期的机制。 LOH用于管理内存。所以是的,调用Dispose
很可能对托管堆的使用没有任何作用,因为这两件事没有任何共同之处。