我正在维护许多控制台应用程序,而我注意到的其中一件事是它们称为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/