7

我有一个非常简单的控制台应用程序。

static void Main(string[] args)
{
    DoAsync();
    Console.ReadKey();
}

这里DoAsync开始一组任务并返回不等待任务完成。每个任务都会写入控制台,但在按下键之前不会显示输出。
当我使用Console.ReadLine一切正常。

所以我对特殊性很好奇ReadKey()

4

1 回答 1

10

文档Console.ReadKey()

ReadKey 方法等待,即阻塞在发出 ReadKey 方法的线程上,直到按下字符或功能键。

它实际上做的是获取一个锁定Console.InternalSyncObject,这会阻止控制台上的进一步操作。

Console.ReadLine()方法不会以这种方式阻塞线程。

阅读这篇文章我猜你已经安装了 .NET 4.5?

于 2013-04-01T13:01:41.417 回答