如何正确退出C#应用程序?应用程序、如何正确

2023-09-03 14:25:25 作者:仙女姐姐

我有一个用C#发布的应用程序。每当我通过单击红色的退出按钮关闭主窗体时,窗体都会关闭,但不会关闭整个应用程序。当我尝试关闭计算机时,我发现了这一点,随后被许多子窗口轰炸,并添加了MessageBox警报。

我尝试了Application.Exit,但它仍然调用所有子窗口和警报。我也不知道如何使用Environment.Exit,也不知道要放入哪个整数。

Mac使用技巧 如何使用快捷键强制退出无法响应的应用程序

此外,每当我的窗体调用FormClosedFormClosing事件时,我使用this.Hide()函数关闭应用程序;这是否会影响我的应用程序的行为?

推荐答案

来自msdn:

Application.Exit

通知所有消息泵必须终止,然后在处理完消息后关闭所有应用程序窗口。如果您已调用Application.Run(WinForms应用程序),此方法将停止所有线程上正在运行的所有消息循环,并关闭应用程序的所有窗口。

Environment.Exit

终止此进程并向底层操作系统提供指定的退出代码。这是您使用控制台应用程序时要调用的代码。

这篇文章Application.Exit vs. Environment.Exit指向了一个很好的提示:

您可以通过检查System.Windows.Forms.Application.MessageLoop属性来确定System.Windows.Forms.Application.Run是否已被调用。如果为True,则已调用Run,您可以假定WinForms应用程序正在执行,如下所示。

if (System.Windows.Forms.Application.MessageLoop) 
{
    // WinForms app
    System.Windows.Forms.Application.Exit();
}
else
{
    // Console app
    System.Environment.Exit(1);
}

引用:Why would Application.Exit fail to work?

 
精彩推荐
图片推荐