C# 内存泄漏-gdiplus.dll

C# 内存泄漏-gdiplus.dll,c#,memory,memory-leaks,C#,Memory,Memory Leaks,我的应用程序正在使用5GB到6GB的内存。我们已经运行了IIS调试诊断,它显示了以下内容: GdiPlus.dll负责价值2.49 GB的未完成分配。以下是前两大内存消耗函数: 格迪普勒斯!GpMemoryBitmap::AllocBitmapData+c2:2.47 GB的未完成分配。 格迪普勒斯!EpScanBitmap::Start+212:价值6.79 MB的未完成分配 在w3wp.exe项目名称-2\u PID\u 28824\u日期\uuuuu 03\u10\u2012\uuuu时间

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

GdiPlus.dll负责价值2.49 GB的未完成分配。以下是前两大内存消耗函数:

格迪普勒斯!GpMemoryBitmap::AllocBitmapData+c2:2.47 GB的未完成分配。 格迪普勒斯!EpScanBitmap::Start+212:价值6.79 MB的未完成分配

在w3wp.exe项目名称-2\u PID\u 28824\u日期\uuuuu 03\u10\u2012\uuuu时间\uu 03\u15\u14pm\u457\u泄漏转储-Private Bytes.dmp中检测到此错误

是什么导致了这次泄漏?这是由于刷子

请给出一些想法/或如何解决这个问题


提前感谢。

您可能忘记释放GDI句柄(位图、画笔、笔等)。大多数GDI对象实现了
IDisposable
,当您使用完这些对象时,应该始终调用
Dispose
方法。
使用
语句有助于:

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

    ...

} // b.Dispose is called automatically here

您可能忘记释放GDI句柄(位图、画笔、笔等)。大多数GDI对象实现了
IDisposable
,当您使用完这些对象时,应该始终调用
Dispose
方法。
使用
语句有助于:

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

    ...

} // b.Dispose is called automatically here

我想说(根据你提供的alocator信息),你不会杀死你的位图。每个GDI+对象都是IDisposable
IDisposable
,因此
Dispose()
可以按照建议使用
,或者使用
关键字。

。每个GDI+对象都是
IDisposable
,因此
Dispose()
可以使用它,或者按照建议使用
关键字。

您是否正确配置了资源?我正在尝试找到如何定位此问题。我如何找到它?您是否正确地配置了资源?我正在尝试找到如何找到此问题。我怎么找到它?