.net – 为什么Console.ReadKey()阻止在另一个线程中调用Console.WriteLine的输出?

前端之家收集整理的这篇文章主要介绍了.net – 为什么Console.ReadKey()阻止在另一个线程中调用Console.WriteLine的输出?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常简单的控制台应用程序
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?

原文链接:https://www.f2er.com/python/185894.html

猜你在找的Python相关文章