跨线程调用控件时关闭窗体时如何避免出现异常:Cannot access a disposed obj
更新时间:2019-01-18 10:16:32
原创,专业,图文 跨线程调用控件时关闭窗体时如何避免出现异常:Cannot access a disposed obj - 跨线,调用,控件,关闭,窗体,如何,避免出现,异常,Cannot,access,disposed,o 今日头条,最新,最好,最优秀,最靠谱,最有用,最好看,最有效,最热,排行榜,最牛,怎么办,怎么弄,解决方案,解决方法,怎么处理,如何处理,如何解决
在线程中跨线程调用窗体时,及使用invoke给窗体控件赋值或更改属性时,若没有在窗体关闭前结束线程,则总是会弹出这样的异常:cannot access a disposed object.
原因应该是线程中调用窗体控件时,窗体已被注销,因此因在窗体注销前退出所有线程。为解决这个问题可以加入如下代码:
private void form1_formclosing(object sender, formclosingeventargs e)
{
system.environment.exit(0);
}
则不会再弹出异常。
调用system.environment.exit(0可以彻底的退出程序,不管什么线程都被强制退出,把程序结束的很干净。
本人菜鸟一枚,只知道这样做程序中不会再出现这个异常,却不知道这样做是否合适,先记录一下,以后再研究。