Environment.Exit(0);和Environment.Exit(Environment.ExitCode);有什么区别?
我两者都用过,而且他们似乎都在做同样的事情。那我该用哪一个呢?
发布于 2021-02-15 15:51:56
我两者都用过,而且他们似乎都在做同样的事情。
正如其他人已经指出的,这是因为ExitCode的默认值是0。
那我该用哪一个呢?
通常,如果您调用Exit(),您( a)有一个很好的理由;( b)您希望尽快使用来终止备注部分中描述的所有缺点()。
所以你会
Environment.Exit(0);,而是让void Main()方法以正常的方式运行到它的末尾。Environment.Exit(Environment.ExitCode);,因为这意味着终止的原因在一段时间前就设置好了。Environment.Exit(ERRORCODE);,可能使用有意义的常量而不是幻数所以真正的答案是:如果可能的话,不要使用它。
相反,您可能需要尝试Window.Close()关闭单个窗口或Application.Exit(),该窗口关闭所有窗口,并将您带回到Main()方法并退出Application.Run()方法调用。
如果这还不足以终止您的程序,并且您仍然可以在任务管理器中看到它,那么它将运行一个前景线程,例如,一个可以节省用户工作的线程。您不想终止它,因为它可能导致文件损坏。
有一个布尔isRunning或_shouldStop变量的概念来终止线程。
如果不知道应用程序为什么不终止,请附加调试器并查看其余线程的调用堆栈。
发布于 2021-02-15 15:34:41
Environment.ExitCode的默认值是0,所以通常情况下不会有区别。但是,由于ExitCode是一个整数,所以它可以设置为任意值,例如Environment.ExitCode = 1。如果系统失败,它可以将ExitCode设置为1,当环境存在于Environment.Exit(Environment.ExitCode)或程序的刚刚结束时,它将使用ExitCode 1而不是0。任何不是0的东西都会表示错误。
发布于 2021-02-15 15:41:16
Environment.ExitCode是int静态属性,默认情况下该属性的值为。这是因为int是值类型,默认值是。
因此,如果在您的代码中不设置Environment.ExitCode的值而不是,那么它们将是相同的。
https://stackoverflow.com/questions/66210810
复制相似问题