当前位置:  开发笔记 > 编程语言 > 正文

什么时候应该使用Environment.Exit来终止控制台应用程序?

如何解决《什么时候应该使用Environment.Exit来终止控制台应用程序?》经验,为你挑选了2个好方法。

我在工作中维护了许多控制台应用程序,我在其中一些人注意到的一件事是他们调用了Environment.Exit(0).

示例程序如下所示:

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

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

我在这里错过了什么吗?或者是否有理由在此实例中调用Environment.Exit?



1> Jon Skeet..:

调用Exit()Main方法的最后一行的唯一原因是可能有其他前台线程正在运行.如果执行刚刚结束,它们将继续运行Main.即使在这种情况下,通常更好的做法是将一些明确的优雅终止放入其他线程 - 或者让它们开始后台线程.

如果您想要返回不同的退出代码Main,更简单的方法是声明它返回int.

简而言之,我认为你不需要Environment.Exit()这里,并且值得你的同事确切地告诉他们为什么要使用它 - 他们很可能无法给你一个充分的理由,而且你可以削减它的另一点点出.



2> Anand Shah..:

基本上该语句Environment.Exit(0)告诉操作系统这是一个"干净"的退出.还有其他数字,每个都有不同的含义,如Environment.Exit(1)

但有一点需要注意的是,"Main"已被声明为没有返回"void",因此退出代码对它没有任何意义.

如果您想了解更多有关不同退出代码的信息,请查看此处

系统错误代码


被声明为不返回任何内容的`Main`与退出代码的含义无关.
推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有