繁体   English   中英

内存泄漏-gdiplus.dll画笔

[英]memory leak - gdiplus.dll brushes

我的应用程序正在使用5 GB到6 GB的内存。 我们已经运行了IIS调试诊断程序,它显示以下内容:

GdiPlus.dll负责2.49 GBytes的未完成分配。 以下是最重要的两个内存消耗函数:

GdiPlus!GpMemoryBitmap :: AllocBitmapData + c2:2.47 GB未完成的分配。 GdiPlus!EpScanBitmap :: Start + 212:6.79 MB的未完成分配。

在w3wp.exe_ Projectname -2 _PID_ 2882​​4 _Date__03_10_2012__Time_03_15_14PM_ 457 _Leak Dump-Private Bytes.dmp中检测到此问题

是什么原因导致泄漏? 这是由于刷子。

请提出一些想法/或如何解决?

提前致谢。

您可能会忘记释放GDI手柄(位图,画笔,笔等)。 大多数GDI对象都实现IDisposable ,在使用完这些对象后,应始终调用Dispose方法。 using语句可以帮助您:

using (Brush b = new SolidBrush(Color.Black))
{

    ...

} // b.Dispose is called automatically here

我会说(根据您提供的定位器信息),您不会杀死位图。 每个GDI +对象都是IDisposable ,因此建议使用Dispose()或使用using关键字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM