从多个线程调用Console.WriteLine

46 .net console.writeline

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

Ree*_*sey 60

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

控制台的文档:

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

  • @Lirik在本机端处理,不使用托管锁。 (2认同)
  • 我想补充一点,就是控制台窗口(在Visual Studio中)允许从多个线程编写文本,但是您应该知道,文本的输出顺序可能与预期不符,例如,添加大字符串(如堆栈跟踪)时),甚至可能会出现“乱码”或混合。显然,没有任何锁定可以确保在另一个调用开始将文本泵送到流之前完成一个“写”操作。 (2认同)

Jur*_*pik 6

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

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

在Timer中使用Console.WriteLine它为何会退出?