我使用C#做了个多线程的程序,结果点击主窗体右上方的叉有时没反应?
因为要在程序退出前作些工作,主窗体右上方的叉有时不起作用,所以
Closing()函数里的code也就运行不到,请问各位这个问题有遇到过吗?//委托调用处
this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing);//Closing函数
private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
//有时运行不到此处
ExitProgram();
}
因为要在程序退出前作些工作,主窗体右上方的叉有时不起作用,所以
Closing()函数里的code也就运行不到,请问各位这个问题有遇到过吗?//委托调用处
this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing);//Closing函数
private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
//有时运行不到此处
ExitProgram();
}
你们好!
我的code里的一个类的工作原理和二位在所给网址上的例子有相通之处,
我也是在主线程里开了一个线程CheckDB每一段时间检测一次DB,满足条件就使用事件AutoResetEvent Set方法通知另外一个线程去做其它工作,而且工作是正常的,但是在退出的时候点击主窗体右上方的叉有时没反应!
后来只好做了一个buttton( Exit),在其click事件中调用ExitProgram()做退出前的
一些工作,最后使用dispose强制性退出程序。不理解的是单主窗体右上方的叉有时没反应,其他按钮操作一切正常,使用Alt-F4的方式也是没有反应的。而且private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e)函数的代码一行也不运行!
---谢谢!