3

跟踪和降低 GDI 窗口句柄的最佳方法是什么。.

4

6 回答 6

5

值得一读的两个链接...

资源泄漏:检测、定位和修复泄漏的 GDI 代码

GDI 资源泄漏

于 2008-12-01T02:46:16.927 回答
2

我个人使用IARSN TaskInfo来查看我的程序使用的句柄数,包括 GDI。至于降低活动句柄的数量,那么我会看看你的应用程序中使用的是什么句柄。

像(但不限于)这样的事情:

  • 位图
  • 控件(我不认为它们都使用句柄​​)

您是否有手柄过多或手柄泄漏的特定问题?

于 2008-11-25T17:19:04.450 回答
1

你不需要任何工具。只需使用 win32 api 阅读 GDI 句柄表

于 2008-11-26T01:18:07.493 回答
1

不久前我写了一个工具来追踪资源泄漏。它托管在谷歌代码上。虽然它是一个本地库,但我相信它也可以用来追踪 .NET 代码中的漏洞。

希望能帮助到你。

于 2008-12-17T22:00:59.427 回答
1

要跟踪 GDI 句柄,我建议来自 Nirsoft 的 GDIView。它是一个免费软件,可以显示每种类型(钢笔、画笔、位图、字体、DC ...)有多少个 GDI 句柄有一个进程。

于 2011-12-08T10:07:30.430 回答
0

查看最终用户机器上当前使用情况的最简单方法是使用任务管理器并查看“GDI 句柄”列

当我怀疑我有 GDI 处理泄漏时,我倾向于运行一次泄漏场景,强制进行垃圾收集,查看任务管理器,使用 gc 再次运行该操作并检查差异。如果我找到了一个,我使用了 .Net Profiler(来自 SciTech),它可以详细显示导致泄漏的对象以及为什么不归还它

于 2008-11-25T17:19:36.290 回答