[C#] WinForm程序退出方法总结

2022-03-29 20:28:32 浏览数 (2)

在做调试的时候,如果程序退出不彻底,可能会要重启电脑才能再次调试....

用System.Environment.Exit(0);就能彻底退出.

代码语言:javascript复制
private void FormMain_FormClosing(object sender, FormClosingEventArgs e)

{
	if (MessageBox.Show("是否确认退出系统?", "退出确认", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.No)
	{
		e.Cancel = true;
	}
	else
    {
        this.Close();
        // 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出;

        Application.Exit();
        //强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出;

        Application.ExitThread();
        //强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题

        System.Environment.Exit(0);
        //这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。
    }

P.S.捕捉程序异常,并记录也许是个好习惯.

此事件提供未捕获的异常的通知。 它允许应用程序在系统默认处理程序向用户报告异常并终止应用程序之前记录有关异常的信息。 如果提供了有关应用程序状态的足够信息,则可以执行其他操作,例如保存程序数据以便以后恢复。 建议注意,因为在未处理异常时,程序数据可能会损坏。

0 人点赞