58

为什么 Console.WriteLine 从多个线程工作?

4

4 回答 4

70

控制台类为您处理线程同步。

Console的文档中:

使用这些流的 I/O 操作是同步的,这意味着多个线程可以读取或写入流。

于 2009-07-03T16:07:55.663 回答
8

如果您使用 Console.ReadKey ,.NET 4.5 CLR 中有一个错误会使 Console.WriteLine无法在多个线程中工作。它在某些 Windows 版本中已修复,但在 8.1 Windows 更新中尚未找到它。

使用 Console.Writeline() 或 Console.Write() 时,多线程 C# 控制台应用程序中不经常挂起

在 Timer 中使用 Console.WriteLine 为什么会出现退出?

于 2015-04-28T18:16:21.257 回答
2

使用时,多个线程写入相同的输出Console.WriteLine,通常默认情况下是您的屏幕。

于 2009-07-03T16:07:19.487 回答
0

控制台和您的代码是 2 个独立的应用程序

控制台窗口不是您的应用程序。控制台应用程序是不可见的,您的应用程序不包含控制台。控制台安装在 Windows 本身中。

Console.Writeline() 是一条消息

它写入一个TextStream。Microsoft 的控制台进程只是等待显示新的流文本。

“控制台应用程序”名称不会使其成为控制台

与 ui 项目的不同之处在于控制台应用程序带有一组简化的引用,并且依赖于输入/输出流与用户进行通信。

您甚至不需要控制台,您可以构建自己的控制台,或使用调试器来查看和写入它。

与记事本的比较

如果文件是一条消息,并且记事本打开了您的代码保存的文件流。从哪个线程保存文件并不重要。您没有访问任何用户界面。

于 2021-03-24T19:37:48.703 回答