Visual Studio上的我的控制台应用程序正在自动关闭,所以我想使用像C system("PAUSE")
这样的东西在执行结束时“暂停”应用程序,我该如何实现?
答案 0 :(得分:499)
答案 1 :(得分:143)
您可以使用 Ctrl + F5 编译(开始调试)您的工作。
试试吧。我总是这样做,控制台告诉我我的结果是打开的。无需其他代码。
答案 2 :(得分:42)
在Visual Studio中尝试 Ctrl + F5 来运行您的程序,这将添加一个暂停"按任意键继续..."自动没有任何Console.Readline()或ReadKey()函数。
答案 3 :(得分:35)
Console.ReadLine()
等待用户 Enter 或Console.ReadKey
等待任何密钥。
答案 4 :(得分:24)
使用:
Console.ReadKey();
当有人按任意键时关闭它,或者:
Console.ReadLine();
当用户输入内容并按回车键时。
答案 5 :(得分:13)
Ctrl + F5更好,因为您不需要额外的线路。 最后,您可以点击进入和退出运行模式。
但是,当您使用F5启动程序并设置断点时,您可以调试应用程序并为您提供其他优势。
答案 6 :(得分:10)
或者,您可以使用以下代码延迟结束:
System.Threading.Thread.Sleep(1000);
注意Sleep
使用的是毫秒。
答案 7 :(得分:8)
提到的解决方案会改变您的计划的运作方式。
您可以在控制台调用周围放置#if DEBUG
和#endif
,但如果您确实希望阻止窗口仅在Visual Studio下的开发计算机上关闭,或者VS不是。只有在您明确配置它时才会运行,并且在从命令行运行时您不想要恼人的'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();
}
这也适用于调试需要提升权限的程序,或者需要能够提升自己的程序。
答案 8 :(得分:6)
如果您不希望程序关闭,即使用户按任意键也是如此;
while (true) {
System.Console.ReadKey();
};//This wont stop app