如何调试“创建窗口句柄时出错”错误?

时间:2009-03-16 03:35:05

标签: .net windows

我正在尝试调试基于Windows .NET的应用程序出错。错误消息类似于“创建窗口句柄时出错”。 On researching about this error我发现可能的原因是that the application is using more than 10000 user handles

我想在应用程序中加入一些调试代码,看看应用程序使用了多少“用户句柄”。但谷歌搜索“如何计算用户句柄”没有帮助。

那么,有没有人遇到过类似的问题?如果是的话,你是如何调试它的?

2 个答案:

答案 0 :(得分:2)

WinForm应用程序中有两个可能的原因导致此问题

  1. 您没有在应用程序中主动处理Control和Form实例。用这种方式解决这个问题比较困难,因为GC会清理手柄,但仍然可以使用。
  2. PInvoke到本机API而不关闭生成的句柄
  3. 这将是我要检查的前两个地方。另一个想法是直接进入源并开始调试句柄泄漏。以下是有关如何实现此目标的一些链接。

答案 1 :(得分:0)

另一个可能的原因是某些控件在OnHandleCreated或相关的HandleCreated事件中抛出异常。我相信这会导致类似你所看到的错误。