首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Environment.Exit(0)和Environment.Exit(Environment.ExitCode)有什么区别?

Environment.Exit(0)和Environment.Exit(Environment.ExitCode)有什么区别?
EN

Stack Overflow用户
提问于 2021-02-15 15:30:49
回答 3查看 896关注 0票数 0

Environment.Exit(0);Environment.Exit(Environment.ExitCode);有什么区别?

我两者都用过,而且他们似乎都在做同样的事情。那我该用哪一个呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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变量的概念来终止线程。

如果不知道应用程序为什么不终止,请附加调试器并查看其余线程的调用堆栈。

票数 2
EN

Stack Overflow用户

发布于 2021-02-15 15:34:41

Environment.ExitCode的默认值是0,所以通常情况下不会有区别。但是,由于ExitCode是一个整数,所以它可以设置为任意值,例如Environment.ExitCode = 1。如果系统失败,它可以将ExitCode设置为1,当环境存在于Environment.Exit(Environment.ExitCode)或程序的刚刚结束时,它将使用ExitCode 1而不是0。任何不是0的东西都会表示错误。

票数 2
EN

Stack Overflow用户

发布于 2021-02-15 15:41:16

Environment.ExitCodeint静态属性,默认情况下该属性的值为。这是因为int值类型,默认值是。

因此,如果在您的代码中不设置Environment.ExitCode的值而不是,那么它们将是相同的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66210810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档