我在 Visual Studio 上的控制台应用程序会自动关闭,因此,我想使用 C 之类的东西system("PAUSE")
在应用程序执行结束时“暂停”应用程序。我怎样才能做到这一点?
9 回答
Console.ReadLine();
或者
Console.ReadKey();
ReadLine()
等待↩</kbd>, ReadKey()
waits for any key (except for modifier keys).
编辑:从达林那里偷了钥匙符号。
您可以使用Ctrl+编译(开始调试)您的工作F5。
尝试一下。我总是这样做,控制台会向我显示我的结果。不需要额外的代码。
尝试在 Visual Studio 中使用Ctrl + F5来运行您的程序,这将在没有任何 Console.Readline() 或 ReadKey() 函数的情况下自动添加“按任意键继续...”的暂停。
Console.ReadLine()
等待用户Enter或Console.ReadKey
等待任何键。
采用:
Console.ReadKey();
当有人按下任何键时它会关闭,或者:
Console.ReadLine();
当用户输入内容并按下回车时。
或者,您可以使用以下代码延迟关闭:
System.Threading.Thread.Sleep(1000);
注意Sleep
使用毫秒。
Ctrl + F5 更好,因为您不需要额外的行。最后,您可以点击进入和退出运行模式。
但是,当您使用 F5 启动程序并设置断点时,您可以调试您的应用程序,这会给您带来其他优势。
提到的这些解决方案会改变您的程序的工作方式。
您当然可以放置控制台调用#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();
}
这也适用于调试需要提升特权或需要能够提升自身的程序。
如果您不希望程序关闭,即使用户按任意键;
while (true) {
System.Console.ReadKey();
};//This wont stop app