如何保持控制台窗口打开
当我运行我的程序时,控制台窗口似乎运行和关闭。 如何让它保持打开,这样我才能看到结果?
class Program { public class StringAddString { public virtual void AddString() { var strings2 = new string[] { "1", "2", "3", "4", "5","6", "7", "8", "9"}; Console.WriteLine(strings2); Console.ReadLine(); } } static void Main(string[] args) { StringAddString s = new StringAddString(); } }
你忘了打电话给你的方法:
static void Main(string[] args) { StringAddString s = new StringAddString(); s.AddString(); }
它应该停止你的控制台,但结果可能不是你所期望的,你应该稍微改变你的代码:
Console.WriteLine(string.Join(",", strings2));
将Console.Read()作为程序的最后一行。 这会阻止它关闭,直到您按下一个键
static void Main(string[] args) { StringAddString s = new StringAddString(); Console.Read(); }
如果你想在调试时保持它打开,但是在不调试时仍然让它正常关闭,你可以这样做:
if (System.Diagnostics.Debugger.IsAttached) Console.ReadLine();
与其他答案一样,对Console.ReadLine()
的调用将使窗口保持打开状态,直到按下enter,但只有在附加调试器时才会调用Console.ReadLine()
。
我知道有两种方法
1)程序结束时的Console.ReadLine()
。 缺点是,您必须更改代码并且必须记住将其取出
2)在调试器CONTROL-F5
之外运行,这将在visual studio之外打开一个控制台窗口,该窗口在完成时不会关闭。 优点,您无需更改代码。 缺点是,如果有exception,它将不会进入调试器(但是当您获得exception时,您只需在调试器中重新运行它)
Console.ReadKey(true);
这个命令比readline更好一点,只有当你按Enter键时它才会通过,而true参数在读取结果时也会隐藏丑陋闪烁的光标:)然后任何按键终止
写Console.ReadKey();
在main()
方法的最后一行。 此行无法完成控制台。 我希望它会对你有所帮助。
您无需用户输入即可处理此问题。
步骤1.在主线程的开头创建一个ManualRestEvent
ManualResetEvent manualResetEvent = new ManualResetEvent(false);
第2步 。 等待ManualResetEvent
manualResetEvent.WaitOne();
第3步。停止
manualResetEvent.Set();
最后使用Console.Readline()。在手动关闭之前,您的代码将不会关闭。由于Readline等待您的代码需要输入的输入,因此您的控制台将打开,直到您输入一些输入。
确保使用Console.ReadLine();
保持前面的Console.WriteLine("");
关闭的消息。