c#退出应用程序办法: 1、Application.Exit();//好像只在主线程可以起作用,而且当有线程,或是阻塞方法的情况下,很容易失灵。 2、Application.ExitThread();//退出当前线程上的消息循环,并关闭该线程上的所有窗口, 也会失灵。 3、Environment.Exit(0); // 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。 4、Process.GetCurrentProcess().Kill();//此方法完全奏效,绝对是完全退出。 看下面例子: 强制突出当前程序要用:System.Environment.Exit(int exitcode)方法;该方法:终止当前进程并为基础操作系统提供指定的退出代码。 如下则问题解决: 复制代码代码如下: private void frmFileDisposal_Closed(object sender, System.EventArgs e) { System.Environment.Exit(System.Environment.ExitCode); this.Dispose(); this.Close(); } 或者把它放到事件里: 代码如下: while (MessageBox.Show("退出当前窗体?", "", MessageBoxButtons.YesNo) == DialogResult.No) { ... } System.Environment.Exit(System.Environment.ExitCode); 还有一种方法: 代码如下: System.Threading.Thread.CurrentThread.Abort(); 或者 代码如下: Process.GetCurrentProcess().Kill() 或者 代码如下: Application.ExitThread(); 或者 代码如下: Application.ExitThread() 不过以上方法,都是强制直接退出了整个程序,不只是关闭子窗体。可能还会引发某些问题。 我感觉最好方法的就是,在子窗体的Closing事件中,写循环退出条件,这样就可以避免某些未知的错误,而且可以只关闭子窗体,并释放子窗体占用的资源。 Application.Exit(); 方法停止在所有线程上运行的所有消息循环,并关闭应用程序的所有窗口。 Application.Exit 是一种强行退出方式,就像 Win32 的 PostQuitMessage()。它意味着放弃所有消息泵,展开调用堆栈,并将执行返回给系统。