C# 中为什么主程序关不掉

来源:百度知道 编辑:UC知道 时间:2024/07/01 01:18:05
下面是我写的程序,点击CloseButton后,主程序停在Main()里面关不掉啊,请高手指点。。。
private void CloseButton_Click(object sender, EventArgs e)
{
if (thread != null)
{
thread.Abort();
thread = null;
}
messageStream.Close();
this.Owner.Close();
this.Close();

Application.Exit();
}
首先感谢sclike_sx和lyllyp2008两位的回答
你们的方法我都尝试过了,
把Application.Exit()上面的其中任何一条语句或者全部的语句注释掉
都不能关闭主程序。
我单步调试过了,不管有没有this.Close(),程序都会运行到Application.Exit()
然后到Main函数就不动了,但是程序还是处在运行的状态。
郁闷。。。

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

直接Application.Exit();

你一定是还有其他线程没关吧?

有多个窗体吗?没有的话直接
private void CloseButton_Click(object sender, EventArgs e)
{
this.Close();
}
不行吗?

你可以在窗体的CLosing事件里面写一个关闭的方法,在按钮里调用就可以