在多次长写操作期间停止控制台更新

时间:2013-11-06 18:24:15

标签: c# colors console

我需要在控制台上写一个使用多种颜色的长字符串,但我需要它只在所有写入完成后才能直观地更新。简单地改变文本的颜色可以通过设置Console.ForegroundColor来实现,但有没有办法来锁定"控制台,只有在所有写入完成后才更新一次?在不锁定控制台的情况下实现此目的的一种方法是使用ANSI颜色代码,但在较新的Windows操作系统上不支持它们。当我完成冗长的写操作时,只更新控制台的最佳方法是什么?

类似的东西:

Console.Lock() // Prevents visual updates
// multi_colored_string is StringBuilder
for (int counter = 0; counter < multi_colored_string.Length; counter++)
{
    char next_char = multi_colored_string[counter];
    if (next_char == "a")
    {
        Console.ForegroundColor = ConsoleColor.Magenta;
    }
    else if (next_char == "b")
    {
        Console.ForegroundColor = ConsoleColor.Cyan;
    }
    Console.Write(next_char);
}
Console.Unlock() // Allows console to update again, reflecting all writes

0 个答案:

没有答案