您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:22:59 python 字数 1472 阅读 552 来源 www.jb51.cc/python

我有一个非常简单的控制台应用程序 static void Main(string[] args) { DoAsync(); Console.ReadKey(); } 这里DoAsync启动任务集并返回不等待任务的完成. 每个任务都写入Console,但在按下键之前不显示ouptut. 当我使用Console.ReadLine时,一切正常. 所以我对ReadKey()的小说很好奇.

概述

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

这里DoAsync启动任务集并返回不等待任务的完成.
每个任务都写入Console,但在按下键之前不显示ouptut.
当我使用Console.ReadLine时,一切正常.

所以我对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?

总结

以上是编程之家为你收集整理的.net – 为什么Console.ReadKey()阻止在另一个线程中调用Console.WriteLine的输出?全部内容,希望文章能够帮你解决.net – 为什么Console.ReadKey()阻止在另一个线程中调用Console.WriteLine的输出?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶