|
|
1
2
GDI+是否使用GDI句柄?我不确定,尽管我在某处读到有一个.NET System.Drawing实现依赖于裸GDI。
你如何确定你的大型应用程序正在泄漏GDI句柄?任务管理器中的计数是否很大?如果是这样的话,您是一直使用GDI+,还是同时使用GDI?如果多次创建控件,测试应用程序GDI句柄计数是否会增加? |
|
|
2
2
绘制事件处理程序应如下所示:
现在你每次油漆都会漏。开始最小化/还原你的窗体,然后查看GDI对象天空火箭。。。
|
|
|
3
2
如果要从.NET泄漏GDI对象,则只需创建一个GDI对象而不释放它:
Blingo blango,你把GDI笔漏了。
|
|
|
4
0
我认为编译器只使用一个句柄。
|
|
|
5
0
在窗体上创建两个按钮。在每个按钮中,添加以下代码。在一个按钮中,注释掉Dispose方法。
This 可能是我找到的最好的一页解释了。 |
|
6
0
Using GDI Objects the Right Way 没有显式释放的GDI对象应该由它们的finalize隐式地释放。 GDI+ FAQ ) 但我怀疑CLR垃圾收集器是否能够如此快速地删除GDI资源,以至于我们甚至看不到TaskManager中的内存使用变化。也许当前的GDI+实现没有使用GDI。 我尝试了下面的代码来生成更多的GDI对象。但我仍然看不到GDI句柄数量的任何变化。
|