C# Winform异常:Error creating window handle 调查解决方法

.Net技术 码拜 5年前 (2019-12-12) 7473次浏览 0个评论

使用C# Winform做开发时间不短了,这次开发个简单的图片文件管理器软件遇到的问题还不少,继上次的 C# Winform FlowLayoutPanel 子控件重叠问题调查处理 问题后,又遇到了新问题:加载图片翻页时,总会出现加载中断卡在那里,只有关了软件,才会正常,但是用一段时间后,问题又再次出现。本地又不重现(最后发现是翻页次数少,没重现出来)。多次远程查看用户未发现问题,偶尔一次查看图片发现了异常:Error creating window handle

C# Winform异常:Error creating window handle 调查解决方法
由于加载图片使用了多线程异步加载,一直在怀疑是多线程导致的并发死锁,但是又发现不出问题。卡在这里好几天。
今天想起了图上的异常错误信息,查了一下这个错误的相关信息:
可能的原因如下:

  • 窗口句柄泄露,句柄数超过1W。
  • 用户对象超过1W,错误提示“当前程序已使用了 Window 管理器对象的系统允许的所有句柄”。

查看句柄和用户对象数量的方法:

通过任务管理器(本人环境windows 10),详细信息,选择句柄、用户对象、GDI对象 ,来查看进程是否有异常, 一般报这个错误时,句柄数或用户对象都接近1W,而Windows对单个程序的句柄限制是1W。

通过以上方法看了一下任务管理器的用户对象数量果然达到了1W。

C# Winform异常:Error creating window handle 调查解决方法

从这里意识到系统有某些对象未被释放,经调查测试将图片控件在翻页移除时,释放掉即可。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C# Winform异常:Error creating window handle 调查解决方法
喜欢 (1)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!