我的Visual Studio控制台应用程序在执行结束后会自动关闭。我希望在程序执行完后“暂停”应用程序,以便我可以轻松检查输出结果。如何实现这一点?
我的Visual Studio控制台应用程序在执行结束后会自动关闭。我希望在程序执行完后“暂停”应用程序,以便我可以轻松检查输出结果。如何实现这一点?
更新:
自 Visual Studio 2017 起,IDE 中有一个内置选项:
Tools > Options > Debugging > Automatically close the console when debugging stops
取消勾选它会在执行结束时自动暂停应用程序,允许您轻松检查其输出,而无需向应用程序添加额外的代码。
有两种方法;
Console.ReadLine();
ReadLine()
方法等待用户按下 ↩ 键。
或者
Console.ReadKey();
ReadKey()
等待任意键(除了修饰键)。
你可以使用Ctrl+F5编译(开始调试)你的工作。
试试吧。我总是这么做,控制台会显示我的结果。
在Visual Studio中,尝试使用Ctrl + F5运行你的程序,这将自动添加一个暂停并显示"Press any key to continue...",而无需使用任何Console.Readline()或ReadKey()函数。
Console.ReadLine()
会等待用户输入Enter,Console.ReadKey()
则会等待任意键。
使用:
Console.ReadKey();
为了让它在有人按下任意键时关闭,或者:Console.ReadLine();
当用户输入内容并按下回车键时使用。
或者,您可以使用以下代码延迟关闭:
System.Threading.Thread.Sleep(1000);
注意Sleep
使用的是毫秒。
System.Threading.Thread.Sleep(-1)
可以无限期地暂停线程。 - Ari SeyhunCtrl + F5更好,因为您不需要额外的线路。 而且,在最后,您可以按Enter键并退出运行模式。
但是,当您使用F5启动程序并设置断点时,您可以调试应用程序,并获得其他优势。
提到的解决方案会改变你的程序运作方式。
当然,你可以在控制台调用周围放置#if DEBUG
和 #endif
,但如果你真的想防止窗口在 Visual Studio 下关闭,并且只有在配置正确时才能确保不关闭,在命令行下运行时也不想看到烦人的 'Press any key to exit...'
,那么使用System.Diagnostics.Debugger
API 是一种方法。
如果你只想在DEBUG
中起作用,只需将此代码包装在一个[Conditional("DEBUG")] void BreakConditional()
方法中即可。
// Test some configuration option or another
bool launch;
var env = Environment.GetEnvironmentVariable("LAUNCH_DEBUGGER_IF_NOT_ATTACHED");
if (!bool.TryParse(env, out launch))
launch = false;
// Break either if a debugger is already attached, or if configured to launch
if (launch || Debugger.IsAttached) {
if (Debugger.IsAttached || Debugger.Launch())
Debugger.Break();
}
这也适用于调试需要提升权限的程序,或者需要能够自我提升的程序。
while (true) {
System.Console.ReadKey();
};//This wont stop app