在线程中跨线程调用窗体时,及使用Invoke给窗体控件赋值或更改属性时,若没有在窗体关闭前结束线程,则总是会弹出这样的异常:Cannot access a disposed object.
原因应该是线程中调用窗体控件时,窗体已被注销,因此因在窗体注销前退出所有线程。为解决这个问题可以加入如下代码:
private void Form1_FormClosing(object sender, FormClosingEventArgs
e)
{
System.Environment.Exit(0);
}
则不会再弹出异常。
调用System.Environment.Exit(0可以彻底的退出程序,不管什么线程都被强制退出,把程序结束的很干净。
本人菜鸟一枚,只知道这样做程序中不会再出现这个异常,却不知道这样做是否合适,先记录一下,以后再研究。
跨线程调用控件时关闭窗体时如何避免出现异常:Cannot access a disposed object.,布布扣,bubuko.com