Environment.Exit 和 Main 中的简单返回 2 之间的区别

发布于 2024-08-05 13:55:09 字数 166 浏览 7 评论 0原文

之间有什么区别吗

...
Environment.Exit(2)

从应用程序的外部来看,和

static int Main()
{
    ...
    return 2;
}

From outside of the application, is there any difference between

...
Environment.Exit(2)

and

static int Main()
{
    ...
    return 2;
}

?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

关于从前 2024-08-12 13:55:09

最明显的区别是您可以从代码中的任何位置调用Environment.Exit。除此之外:

  • 如果有其他前台线程正在执行,则主完成不会终止进程; Environment.Exit 无论如何都会终止该进程。
  • Environment.Exit 终止进程,而无需展开堆栈并执行finally 块(至少根据我的实验)。显然,当您从 Main 返回时,就托管代码而言,您已经处于顶层。
  • 两者都为终结器提供了在进程真正关闭之前执行的机会
  • Environment.Exit需要适当的安全权限,因此不适用于不太受信任的应用程序。

看到问题更新后,我不完全确定你的意思。在这两种情况下,进程都会退出,代码为 2...

The most obvious difference is that you can call Environment.Exit from anywhere in your code. Aside from that:

  • Main finishing won't terminate the process if there are other foreground threads executing; Environment.Exit will take down the process anyway.
  • Environment.Exit terminates the process without unwinding the stack and executing finally blocks (at least according to my experiments). Obviously when you return from Main you're already at the top level as far as managed code is concerned.
  • Both give finalizers a chance to execute before the process really shuts down
  • Environment.Exit demands the appropriate security permission, so won't work for less trusted apps.

Having seen the question update, I'm not entirely sure what you mean. In both cases the process will just exit with a code of 2...

世界如花海般美丽 2024-08-12 13:55:09

Environment.Exit(2) 可以在任何地方使用。 return 2 仅在 Main() 函数内。

Environment.Exit(2) can be used everywhere. return 2 only within the Main() function.

尴尬癌患者 2024-08-12 13:55:09

如果您正在进行单元测试并调用 Main

Program.Main(args);

,则 Environment.exit 将始终反映失败。使用 return 将按预期工作。

If you are doing a Unit Test and calling Main

Program.Main(args);

then Environment.exit will always reflect a failure. Where as using return will work as expect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文