Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何捕获(并有望修复)GDI资源泄漏_C#_User Interface_Gdi_Resources_Memory Leaks - Fatal编程技术网

C# 如何捕获(并有望修复)GDI资源泄漏

C# 如何捕获(并有望修复)GDI资源泄漏,c#,user-interface,gdi,resources,memory-leaks,C#,User Interface,Gdi,Resources,Memory Leaks,我的应用程序在运行6小时后记录异常: 操作系统版本:Microsoft Windows NT 5.1.2600 Service Pack 3(5.1.2600.196608) .NET版本:2.0.50727.3082 SQL Server版本:9.00.4035.00 SQL Server级别:SP3 SQL Server版本:标准版 错误消息:参数无效 异常类型:System.ArgumentException 资料来源:系统图 Stack Trace: at System.Drawing

我的应用程序在运行6小时后记录异常:

操作系统版本:Microsoft Windows NT 5.1.2600 Service Pack 3(5.1.2600.196608)

.NET版本:2.0.50727.3082

SQL Server版本:9.00.4035.00

SQL Server级别:SP3

SQL Server版本:标准版

错误消息:参数无效

异常类型:System.ArgumentException

资料来源:系统图

Stack Trace: 
at System.Drawing.Graphics.GetHdc()
at System.Windows.Forms.ImageList.GetBitmap(Int32 index)
at System.Windows.Forms.ImageList.ImageCollection.get_Item(Int32 index)
<<< MY code >>>
堆栈跟踪:
在System.Drawing.Graphics.GetHdc()中
位于System.Windows.Forms.ImageList.GetBitmap(Int32索引)
位于System.Windows.Forms.ImageList.ImageCollection.get_项(Int32索引)
>

为我工作。它指向字体泄漏。我搜索了ToHfont()。其余的都是历史。

最近我创建了一个简单的类,它调用构造函数和析构函数中的函数,并报告GDI对象计数的任何差异。在一些函数中将其用作作用域对象有助于我在代码中插入GDI泄漏。

请发布代码的相关部分。问题的本质是关于分析大型项目的GUI资源泄漏。如果有一个好的分析技术,我的代码就变得无关紧要了。我想非托管资源跟踪器是一个很好的起点。GDIView基本上也做同样的事情。。但是没有代码可写。我希望Nir Sofer能说出来,这样我就可以给他应得的信条。谢谢你!它只是帮助我解决了我的GDI手柄达到10K极限的问题。