我用C#写了一个窗体应用程序,现在的问题就是在关闭该程序的时候进程关闭不了。请问应该怎么办

我说的是窗体自带的关闭按钮哈 不是自己做的退出按钮

有两种方法可以解决你的这个问题,方法一:将你创建的非UI线程设置为BackGround执行,thread1.IsBackground = true;这样你的程序退出时,如果所有的窗口都被关闭,创建的线程将会自动结束。方法二:在你的线程里面添加执行条件,比如将一个bool全局变量 running 设置为循环条件,当程序需要退出时修改running的值,使它不再满足线程的执行条件时,线程自然会结束。
PS:方法二退出时,可以重写OnClosed函数或者添加FromClosed事件,对running修改,这样在单击窗口右上角的关闭按钮时,会触发FromClosed事件对running进行修改。

希望对你有所帮助!
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-18
这个好像容易,像你这种情况应是关闭后窗体应用程序还在运行,有个事件是关闭并退出应用程序的可以试下,也可以不用点窗体右上角的关闭,可自已做按钮,用close方法关闭应用程序!
第2个回答  2010-10-18
如果只有一个窗体的话,应该是可以的:

你可以在关闭按钮哪里加:

Application.Exit();

在线问会更方便本回答被提问者采纳
第3个回答  2012-03-23
在最后一个窗体中添加FormClosing事件,添加Application.Exit();就可以了吧
第4个回答  2010-10-18
System.Windows.Forms.Application.Exit();
要么就Dispose掉先

怎样用c#实现窗体打开之后关闭不了
\/\/添加窗口关闭事件委托在窗口关闭事件中处理private void TestForm_FormClosing(object sender, FormClosingEventArgs e){switch (e.CloseReason){\/\/应用程序要求关闭窗口case CloseReason.ApplicationExitCall:e.Cancel = true; 拦截,响应操作break;\/\/自身窗口上的关闭按钮case CloseReason.FormOwnerClosing:...

C#程序关闭窗体之后并没有关闭进程是什么原因?
你后面关闭的这个窗体应该是在主窗体或者其他按钮点出来的,然后主窗体隐藏了,显示后面这个,然后你关闭了这个窗体,其实主窗体并没有关掉,你这个关闭按钮事件就不能写 this.Close()。 要写Application.Exit();

C#窗体程序 怎么设置不能关闭进程,求高手
改写关闭窗体的事件FormClosing即可。在事件内写如下代码,那么这个窗体还是可以关闭的,等同于没改变这个事件。private void Form1_FormClosing(object sender, FormClosingEventArgs e){ Application.Exit();} 在事件内写如下代码,这个窗体就无法直接关闭掉了,代码如下:private void Form1_FormClosing(object...

我在C#写一个程序,弹出一个对话框后不点Yes就不关闭,点了就关闭是在窗 ...
因为你触发了关闭事件。而没有终止,所以始终要关闭的。在else里面,加上e.Cancel=true。就可以终止关闭事件了。

C# 中为什么主程序关不掉
因为你先执行的是this.Close();意思是关闭当前的窗体,而这时候因为你已经关闭了当前的窗体,所以就不会执行Application.Exit();当然就不能关闭主程序啦。你把 this.Close();这个去掉,让它直接关闭主程序不就行了么,这样的话它会把所有该项目的窗体全部关闭。

C#编写的一个窗口,关闭时弹出对话框,询问是否关闭…7294
所以,你要在窗体关闭时候,跳出一个窗口提示是否关闭窗体,如果选择不关闭,那么写上e.Cancel=true就可以了,代码如下:在FormClosing事件中:if (MessageBox.Show("确定退出?", "提示", MessageBoxButtons.OKCancel);== DialogResult.Cancel){ e.Cancel = false;}上面if里的内容是,跳出一个提示框,...

c#怎样在关闭窗体时结束整个进程
当进行多线程程序设计的时候,主窗体关闭,往往子线程还在继续运行,这就需要在关闭主窗体之前收回线程。设置一个主窗体的关闭事件,在关闭事件中,对子线程做回收处理。如果是在关闭子窗口的时候关闭整个进程,可以执行,Environment.Exit(0)结束进程。

C# 为何在一个窗体中关闭不了另一个窗体
form1是form2的父级窗体,form2是form3的父级窗体,form2不能关闭form1而独立运行,form1被关闭时,其下属的子窗体都将被关闭,只能使用hide(隐藏);同理,form3中也只能对form2进行隐藏,form3同样也只能对form1进行隐藏或显示。

c#写的窗体应用程序 突然提示如图错误 没之间没装任何东西 突然报错...
应用程序错误原因:1.木马病毒造成常用病毒捆绑应用程序和系统文件,然后安全杀毒软件把有木马病毒应用程序和系统文件查杀导致。2.应用程序组件丢失,应用程序完整的运行需要一些系统文件或者某些ll文件支持,如果应用程序组件不完整也会导致的。3.系统文件损坏或丢失,盗版系统或Ghost版本系统,很容易出现该问题...

C#关闭窗口不退出程序,但在任务栏图标右键菜单中可退出
然后进行判断,只有符合条件的情况下才能够退出,其它情况不能够退出。另外你也可以使用应用程序事件,在应用程序事件中,有一个正在退出应用程序的事件选项,用法和closeing事件相似。具体在项目属性页面可以找到一个名为应用程序事件的按钮,点了之后就可以操作应用程序事件了。

相似回答