我想将一个带有多种颜色的字符串放到控制台上,让它像单个WriteLine一样执行,而不是多次写入可能被中断,或被同时写入的其他线程损坏。
所以下面的帖子看起来似乎正朝着正确的方向发展,但我并没有控制所有写入控制台的代码。我的代码仅限于我正在创作的dll,所以我不能把锁放在任何可能会干扰的地方。如果是锁定和理解线程的问题,那就毫无疑问。如果我的代码没有锁定,这甚至可能吗?
答案 0 :(得分:0)
使用Console.SetOut
替换您自己的TextWriter的现有输出流。在您的自定义文本编写器中,它使某些对象上的控制台同步访问,然后回写真实的标准输出,并为助手方法提供一些方法,您还必须能够同步该同一个对象,无论何时该辅助方法运行,它都可以锁定对应用程序其余部分的控制台的访问。