我有一个非常简单的控制台应用程序。
static void Main(string[] args)
{
DoAsync();
Console.ReadKey();
}
这里DoAsync
启动任务集并返回不等待任务的完成。
每个任务都写入Console,但在按下键之前不显示ouptut
当我使用Console.ReadLine
时,一切正常。
所以我对ReadKey()
pecularities感到好奇。
答案 0 :(得分:9)
来自Console.ReadKey()
的{{1}}:
ReadKey方法等待,即发出的线程上的块 ReadKey方法,直到按下字符或功能键。
它实际上做的是获取Console.InternalSyncObject
上的锁,这会阻止在控制台上进一步操作。
Console.ReadLine()
方法不会以这种方式阻塞线程。
阅读the documentation我猜你安装了.NET 4.5?