我有一个非常简单的控制台应用程序
static void Main(string[] args) { DoAsync(); Console.ReadKey(); }
这里DoAsync启动任务集并返回不等待任务的完成.
每个任务都写入Console,但在按下键之前不显示ouptut.
当我使用Console.ReadLine时,一切正常.
所以我对ReadKey()的小说很好奇.
解决方法
从
the documentation开始,用于Console.ReadKey():
The ReadKey method waits,that is,blocks on the thread issuing the
ReadKey method,until a character or function key is pressed.
它实际上做的是获取Console.InternalSyncObject上的锁,这会阻止在控制台上进一步操作.
Console.ReadLine()方法不会以这种方式阻塞线程.
阅读this article我猜你安装了.NET 4.5?