跨线程调用控件时关闭窗体时如何避免出现异常:Cannot access a disposed object.

在线程中跨线程调用窗体时,及使用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

跨线程调用控件时关闭窗体时如何避免出现异常:Cannot access a disposed object.

上一篇:Delphi TClientDataSet inert 提示 Dataset not in edit or insert mode


下一篇:WPF设置TextBox内容为空时的提示文字的两种方式