从多个线程调用Console.WriteLine

时间:2009-07-03 16:05:16

标签: .net console.writeline

为什么Console.WriteLine可以在多个线程中运行?

4 个答案:

答案 0 :(得分:59)

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

来自Console的文档:

  

使用这些流的I / O操作是   synchronized,表示多个   线程可以读取或写入,   溪流。

答案 1 :(得分:6)

.NET 4.5 CLR中存在一个错误,如果您使用Console.ReadKey,则会使Console.WriteLine 在多个线程中运行。它已在某些Windows版本中修复,但在8.1 Windows Update中尚未找到它。

Infrequent hangs in a multi-threaded C# console application when using Console.Writeline() or Console.Write()

Using Console.WriteLine in a Timer why it would appear to exit?

答案 2 :(得分:2)

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

答案 3 :(得分:0)

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

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

Console.Writeline() 是一条消息

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

“控制台应用程序”名称并未使其成为控制台

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

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

与记事本对比

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