首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#/.NET ThreadException -创建窗口句柄出错

C#/.NET ThreadException -创建窗口句柄出错
EN

Stack Overflow用户
提问于 2016-12-17 06:10:08
回答 1查看 2.2K关注 0票数 0

我最近在我的C# (WinForms)应用程序中实现了一些(基本的)未处理错误处理程序。UnhandledExceptionEventHandler运行良好,但在ThreadExceptionEventHandler中,我遇到了一些奇怪的东西。

在关闭应用程序时,通过this.Close()、标准的WinForms关闭按钮、Application.Exit()等等,当应用程序关闭时,会导致非常短暂的错误。

堆栈跟踪被记录下来,但它给我的全部信息是:

代码语言:javascript
运行
复制
System.ComponentModel.Win32Exception (0x80004005): Error creating window handle.
at System.Windows.Forms.NativeWindow.CreateHandle(CreateParams cp)
at System.Windows.Forms.Control.CreateHandle()
at System.Windows.Forms.Control.get_Handle()
at System.Windows.Forms.Control.CreateGraphicsInternal()
at System.Windows.Forms.ThreadExceptionDialog..ctor(Exception t)
at System.Windows.Forms.Application.ThreadContext.OnThreadException(Exception t)
at System.Windows.Forms.Control.WndProcException(Exception e)
at System.Windows.Forms.Control.ControlNativeWindow.OnThreadException(Exception e)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

然后,应用程序开始关闭,似乎是正常的。我最好的猜测是某种形式的内存泄漏或处理不当的任务关闭,但到目前为止,我在互联网上找到的任何东西都没有多大帮助。

如有任何意见和建议,将不胜感激。提前感谢

更新:有趣的是,错误已经停止发生.不知道为什么。不过,我预计它可能还会回来。一个更长期的解决方案将是很好的。

EN

回答 1

Stack Overflow用户

发布于 2016-12-17 07:02:47

正如bansi所说:如果您正在关闭WinForm应用程序中的窗体,请确保使用此表单的所有线程都在前面关闭。堆栈跟踪(System.Windows.Forms.NativeWindow.Callback)的最后一行给出了提示,线程试图向已经关闭且没有窗口句柄的窗体发送消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41195874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档