我已经构建了一个应用程序,使用Application.Run(new Form)
启动表单。在该应用程序有以下这个线程函数关闭时引发的异常应用程序
private void threadTask() {
while (true) {
Thread.Sleep(500);
if (isOn) {
Invoke((MethodInvoker) delegate { reloadData(tabControl.SelectedIndex); });
Invoke((MethodInvoker) delegate { onOffButton.BackColor = Color.Lime; });
Invoke((MethodInvoker) delegate { infoLabel.Visible = false; });
}
}
}
当我关闭应用程序,我得到这个异常:在 “System.InvalidOperationException” System.Windows.Forms.dll的
:抛出异常
在System.Windows.Forms.Control.Invoke(委托方法,对象[]参数)
我已经试图通过在窗体关闭时调用Application.Exit()
来解决此问题。该函数被执行,但是,我仍然在Application.Exit()
被调用后得到异常。
有什么方法可以解决这个问题吗?如何检查应用程序是否已关闭?
在vs中调试并检查至极线是否通过异常。我想你需要终止线程退出应用程序 – lvl4fi4
这是非常随机的。我发生在三条Invoke行中的任何一行,有时根本就没有。 –
所以就像我说你必须终止他们退出应用程序 – lvl4fi4