6

Подскажите как можно писать в консоль в тоже место асинхронно, как это делает докер на следующем скрине:

Qwertiy
  • 123,725
Vas Mil
  • 1,670
  • Функциями для работы с консолью WriteConsoleOutput и их семейством. Вбейте в поиск WriteConsoleOutput с# – nick_n_a Jun 15 '18 at 13:47
  • 1
    На so вот есть наброски https://ru.stackoverflow.com/questions/499668/%d0%9a%d0%b8%d1%80%d0%b8%d0%bb%d0%bb%d0%b8%d1%86%d0%b0-%d0%b2-charunion-unicodechar – nick_n_a Jun 15 '18 at 13:49

1 Answers1

11

Запоминаете текущие координаты курсора в консоли, потом устанавливаете их же.

public static void Main(string[] args)
{
    Console.Write("1 Downloading: ");
    var left1 = Console.CursorLeft;
    var top1 = Console.CursorTop;

    Console.WriteLine();
    Console.Write("2 Downloading: ");
    var left2 = Console.CursorLeft;
    var top2 = Console.CursorTop;

    Console.CursorVisible = false;

    for (int i = 0; i < 1000; i++)
    {
        Console.SetCursorPosition(left1, top1);
        Console.Write(i + " MB");

        Console.SetCursorPosition(left2, top2);
        Console.Write(i * 2 + " MB");

        Thread.Sleep(100);
    }
}