在 C# 中正确退出应用程序

Muhammad Maisam Abbas 2023年1月30日 2021年3月21日
  1. 使用 C# 中的 Environment.Exit() 函数退出控制台应用程序
  2. 使用 C# 中的 Application.Exit() 函数退出控制台应用程序
  3. 使用 C# 中的 Environment.Exit()Application.Exit() 函数正确退出应用程序
在 C# 中正确退出应用程序

本教程将讨论正确退出 C# 中的应用程序的方法。

使用 C# 中的 Environment.Exit() 函数退出控制台应用程序

Environment.Exit(exitCode) 函数用于终止整个应用程序,在 C# 中以 exitCode 作为退出代码。Environment.Exit() 函数终止整个当前应用程序,并向当前操作系统返回退出代码。请参见下面的示例代码。

using System;

namespace exit_application
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("The Text before Exit");
            Environment.Exit(0);
            Console.WriteLine("The Text after Exit");
        }
    }
}

输出:

The Text before Exit

上面的代码仅打印 The Text before Exit,因为我们在 Console.WriteLine("The Text after Exit"); 行之前通过 Environment.Exit(0) 函数完全退出了应用程序。Environment.Exit() 函数可与基于控制台的应用程序和 WinForms 应用程序一起使用。

使用 C# 中的 Application.Exit() 函数退出控制台应用程序

Application.Exit() 函数终止所有用 Application.Run() 函数启动的消息循环,然后在 C# 中存在当前应用程序的所有窗口。该方法只能与 WinForms 应用程序一起使用。请参见下面的示例代码。

private void exitToolStripMenuItem_Click(object sender, EventArgs e)  
{  
    Application.Exit();
}

我们使用 C# 中的 Application.Exit() 函数关闭了 WinForms 应用程序以及与之关联的所有线程。此方法优于 Environment.Exit() 函数,因为 Environment.Exit() 函数不会终止所有应用程序的消息循环。

使用 C# 中的 Environment.Exit()Application.Exit() 函数正确退出应用程序

我们可以使用 Environment.Exit()Application.Exit() 函数的组合来正确退出 C# 中的应用程序。以下代码示例向我们展示了如何结合使用 C# 中的 Environment.Exit()Application.Exit() 函数来充分关闭应用程序。

using System;
using System.Windows.Forms;

if (Application.MessageLoop == true) 
{
    Application.Exit();
}
else
{
    Environment.Exit(1);
}

在上面的代码中,如果之前已在应用程序中调用了 Application.Run() 函数,则使用 Application.Exit() 函数关闭应用程序。否则,我们通过向操作系统提供 1 作为退出代码,使用 Environment.Exit(1) 函数关闭应用程序。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Csharp Console