【发布时间】:2012-05-04 09:21:33
【问题描述】:
C# 中用于退出控制台应用程序的命令是什么?
【问题讨论】:
-
对于由 Trace.Assert() 退出(通常是有条件的)及其退出代码(在某些平台上为 134),请参阅this。
标签: c# console-application exit
C# 中用于退出控制台应用程序的命令是什么?
【问题讨论】:
标签: c# console-application exit
您可以使用Environment.Exit(0); 和Application.Exit
Environment.Exit(0)is cleaner.
【讨论】:
Environment.Exit 要求您具有 SecurityPermissionFlag.UnmanagedCode 权限 - 这对某些人来说可能很麻烦。
几个选项,按最合适的顺序排列:
System.Environment.Exit(不可移植!见下文)于 9/2013 年编辑以提高可读性
使用特定的退出代码返回: 正如 Servy 在 cmets 中指出的那样,您可以使用 int 返回类型声明 Main 并以这种方式返回错误代码。所以真的没有必要使用 Environment.Exit 除非您需要使用退出代码终止并且不可能在 Main 方法中执行此操作。很可能你可以通过抛出异常来避免这种情况,如果有任何未处理的异常在那里传播,则在 Main 中返回错误代码。如果应用程序是多线程的,您可能需要更多样板来正确终止退出代码,因此您最好只调用 Environment.Exit。
反对使用Evironment.Exit 的另一点——即使是在编写多线程应用程序时——是可重用性。如果您想在使Environment.Exit 不相关的环境中重用您的代码(例如可能在 Web 服务器中使用的库),则代码将不可移植。在我看来,最好的解决方案仍然是始终使用表示方法达到某种错误/完成状态的异常和/或返回值。这样,您始终可以在任何 .NET 环境和任何类型的应用程序中使用相同的代码。如果您正在编写一个需要返回退出代码或以类似于Environment.Exit 的方式终止的应用程序,那么您可以继续在最高级别包装线程并根据需要处理错误/异常。
【讨论】:
您可以使用Environment.Exit(0) 和Application.Exit。
Environment.Exit():终止这个进程并给底层操作系统指定的退出代码。
【讨论】:
主函数运行完毕后,控制台应用程序将退出。 “回报”将实现这一目标。
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("I'm running!");
return; //This will exit the console application's running thread
}
}
如果您返回错误代码,您可以这样做,可以从初始线程之外的函数访问:
System.Environment.Exit(-1);
【讨论】: