【问题标题】:Output screen disappears suddenly in C# console application?输出屏幕在 C# 控制台应用程序中突然消失?
【发布时间】:2014-02-01 13:51:17
【问题描述】:

我正在 VS 2013 中编写一个简单的 C# 控制台应用程序,但问题是输出屏幕会闪烁一会儿然后突然消失。我使用替代方式并最终编写 Console.Readline() 方法并解决问题。所以但我个人认为这只是停止屏幕的技巧而不是正确的方式。所以任何人都可以向我解释正确的方式这样做??

【问题讨论】:

  • 完全正常。程序已完成执行并关闭。如果您想查看一些信息 - 例如,您可以使用 Console.Readline()/或 ReadKey()
  • 您可以预览在桌面上创建程序快捷方式时发生的情况。闪光,砰,消失了。众所周知的“Hit any key to continue”消息,用户打电话给你询问 Any 键的位置,是正常的解决方法。
  • 下面有很多很好的答案。如果您喜欢答案,请不要忘记将问题标记为已回答。

标签: c# visual-studio-2013


【解决方案1】:

程序立即关闭,因为没有什么可以阻止它关闭。在return 0; 处插入断点或在return 0; 之前添加Console.Read(); 以防止程序关闭。

完成程序后,按 Ctrl+F5(不运行 调试)。这将在关闭窗口之前提示,这是 你想要什么。

或者在最后使用这一行

Console.ReadKey();

【讨论】:

  • 如果您按 Ctrl + F5 以在发布模式下运行它,则无需添加任何 Console.Read() 行以使程序等待用户输入。屏幕只是停留在那里。
【解决方案2】:

不,这是正确的做法。 Console.ReadLine()Console.ReadKey() 是一个阻塞语句:它们在继续之前暂停线程以等待输入。如果您不这样做,程序将结束并退出控制台。

在较大的控制台程序中,您可能有一个 while(running) 循环,而 GUI 在其 GUI 线程被显式停止(关闭窗口)之前不会出现此问题,但对于简单的控制台应用程序,您可以使用它“诡计”。

【讨论】:

    【解决方案3】:

    是的,只要您不停止应用程序,它就会一直运行并在完成处理后结束。

    这就是您需要Console.ReadLine() 的原因,它会停止处理并等待直到您告诉它继续。

    【讨论】:

      【解决方案4】:

      当您在调试模式下运行程序时,如果您没有任何断点,或者如果 .NET 引擎不需要从用户读取 IO,那么它只是完成执行而不再等待。

      如果您想在最后停止执行想要查看控制台屏幕,您可以使用任何 IO 读取语句,如下所示:

      Console.ReadLine();
      Console.Read();
      Console.ReadKey();
      

      你可以在without Debugging模式下运行你的程序,只需按下Ctrl+F5

      【讨论】:

        猜你喜欢
        • 2020-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-26
        • 1970-01-01
        • 1970-01-01
        • 2014-04-10
        相关资源
        最近更新 更多