架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 10240|回复: 0

[资料] {"Cannot access a disposed object.\r\nObject name: 'Form1'."}.

[复制链接]
发表于 2016-6-12 16:28:41 | 显示全部楼层 |阅读模式
QQ截图20160612162642.jpg
跨 线程 调用 控件 时 关闭 窗体 时 如何 避免 出现异常 cannot access disposed object.
在线程中跨线程调用窗体时,及使用invoke给窗体控件赋值或更改属性时,若没有在窗体关闭前结束线程,则总是会弹出这样的异常:cannot access a disposed object.
原因应该是线程中调用窗体控件时,窗体已被注销,因此因在窗体注销前退出所有线程。为解决这个问题可以加入如下代码:


则不会再弹出异常。
调用system.environment.exit(0可以彻底的退出程序,不管什么线程都被强制退出,把程序结束的很干净。



FormClosing事件

在窗体关闭时,FormClosing事件发生。此事件会得到处理。从而释放与窗体相关的所有资源。

如果取消此事件,则窗体仍然保持打开状态。

当窗体显示为模式对话框时,单击“关闭”会隐藏窗体并将DialogResult属性设为Cancel。通过在些事件中设置DialogResult属性可以在用户单击右上角关闭按钮时重写DialogResult的值。

FormClosed事件

在用户或Application类的Close方法或Exit方法关闭窗体后,会发生FormClosed事件。

可以使用此事件释放窗体的一些资源。还可以使用此事件保存输入窗体中的一些信息或者更新父窗体。





上一篇:c#/winform版12306登录,可手动点击图片验证码
下一篇:c# socket获取客户端ip地址和端口
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-23 18:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表