有没有更好的语句(或方法)来保持控制台不消失,而不是使用hackish Console.ReadLine()调用。是否有更能表达保持控制台可见性目的、更正交的内容?
有没有更好的语句(或方法)来保持控制台不消失,而不是使用hackish Console.ReadLine()调用。是否有更能表达保持控制台可见性目的、更正交的内容?
如果您仍在开发应用程序,可以通过 Ctrl + F5(无调试)运行 否则,您可以使用 Console.ReadKey() (相同但没有更多选项)
Console.ReadKey();
Console.ReadLine()
不是一种hackish的方法,它会暂停屏幕等待输入。输入可以是单个键或字符串。
更新
ReadKey()方法的一个好处是它“等待,也就是在发出ReadKey方法的线程上阻塞,直到按下字符或功能键。” MSDN
这与读取字符串的ReadLine不同。可以说更加清晰明了。
这要看情况而定。如果您要运行命令行、通过代码进行调试,然后能够在控制台上查看结果,则有两个选项:
我不确定为什么这是默认行为,但它就是这样的 :-)
这取决于我正在做什么。如果我正在进行多线程工作,并希望我的控制台应用程序保持活动状态,直到所有其他工作完成,我通常会像这样做。(类似于MasterMastic)
using System;
using System.Threading;
namespace Test_Console
{
class Program
{
static EventWaitHandle EWHandle;
static void Main(string[] args)
{
EWHandle = new EventWaitHandle(false, EventResetMode.AutoReset);
Thread WorkThread = new Thread(new ThreadStart(DoStuff));
EWHandle.WaitOne();
}
static void DoStuff()
{
Console.WriteLine("Do what you want here");
EWHandle.Set();
}
}
}
当然,如果你想要的是这样的话,总是可以使用常规的断点和其他调试工具。
我通常使用其中之一:
Console.ReadKey(true); //You might want to put this in an infinite loop
new AutoResetEvent(false).WaitOne();
WaitOne
和仅运行(而不是调试)程序是您的非hackish选项。}
处设置断点。