我正在维护许多控制台应用程序,而我注意到的其中一件事是它们称为Environment.Exit(0)。

一个示例程序如下所示:

public class Program
{
    public static void Main(string[] args)
    {
        DoStuff();
        Environment.Exit(0);
    }
}

我不明白原始程序员的意图是什么?在我看来,即使没有Environment.Exit语句,程序也应该退出。就是说,对于其中一个程序,即使应该关闭它的控制台窗口也一直保留着,所以我真的不确定那里发生了什么...。

我在这里想念什么吗?还是在这种情况下应调用Environment.Exit的原因?

最佳答案

调用Exit()作为Main方法的最后一行的唯一原因是,如果可能正在运行其他前台线程。如果执行只是落在Main的末尾,它们将保持运行。即使在这种情况下,通常最好还是在其他线程中加入一些明确的优雅终止,或者让它们作为后台线程开始。

如果您想从Main返回不同​​的退出代码,则更简单的方法是将其声明为返回int

简而言之,我认为您不需要在这里使用Environment.Exit(),值得向您的同事确切询问他们为什么使用它-机会是他们无法为您提供充分的理由,这是您可以做到的另一点缺点剪下。

关于c# - 什么时候应该使用Environment.Exit终止控制台应用程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/692323/

10-13 03:17