2

我想将一个具有多种颜色的字符串放在控制台上,并让它像单个 WriteLine 一样执行,而不是多个写入可能会被同时写入的其他线程中断或损坏。

所以下面的帖子看起来是朝着正确的方向发展,但我无法控制所有写入控制台的代码。我的代码仅限于我正在创作的 dll,所以我不能随便把锁放在任何可能干扰的地方。如果这是一个关于锁和对线程的理解的问题,那是毫无疑问的。如果没有锁定我的代码,这甚至可能吗?

如何在 C#.NET 中跨线程锁定控制台?

4

1 回答 1

1

使用您自己的 TextWriter 替换现有的输出流Console.SetOut。在您的自定义文本编写器中,让它同步访问某个对象上的控制台,然后写回真正的标准输出,并为您还必须能够在同一个对象上同步的辅助方法提供一些方法,即每当该辅助方法运行时,它都可以锁定应用程序其余部分对控制台的访问。

于 2013-09-19T14:11:04.907 回答