在c#中写入控制台:您可以使用多种颜色单独写入,还是锁定控制台进行多次写入?

时间:2013-09-19 13:45:25

标签: c# multithreading windows-console console.writeline

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

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

How do I lock the console across threads in C#.NET?

1 个答案:

答案 0 :(得分:0)

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