一旦程序执行完毕,Visual Studio上的控制台应用程序就会自动关闭。我希望在应用程序执行结束时“暂停”应用程序,以便可以轻松地检查输出。我怎样才能做到呢?
当前回答
或者,您可以使用以下代码延迟关闭:
System.Threading.Thread.Sleep(1000);
注意Sleep使用的是毫秒。
其他回答
上面提到的解决方案改变了程序的工作方式。
你当然可以在控制台调用周围设置#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
Console. readline()来等待用户进入或控制台。ReadKey等待任何键。
或者,您可以使用以下代码延迟关闭:
System.Threading.Thread.Sleep(1000);
注意Sleep使用的是毫秒。
Ctrl + F5更好,因为不需要额外的行。 最后,你可以点击进入并退出运行模式。
但是,当你用F5启动程序并设置断点时,你可以调试你的应用程序,这给了你其他的优势。
推荐文章
- 如何在c#中获得正确的时间戳
- Linq选择列表中存在的对象(A,B,C)
- c# .NET中的App.config是什么?如何使用它?
- c#:如何获得一个字符串的第一个字符?
- String类中的什么方法只返回前N个字符?
- 更好的方法将对象转换为int类型
- 我可以将c#字符串值转换为转义字符串文字吗?
- 在c#中转换char到int
- c#中朋友的对等物是什么?
- 关键字使用virtual+override vs. new
- 在ASP中选择Tag Helper。NET Core MVC
- 如何在没有任何错误或警告的情况下找到构建失败的原因
- 跨线程操作无效:控件“textBox1”从创建它的线程以外的线程访问
- 否ConcurrentList<T>在。net 4.0?
- 在c#中解析字符串为日期时间