C# Замедление цикла

187
28 февраля 2018, 06:21

Возможно ли замедлить цикл так, что бы мы увидели например, как появляются новые цифры в консоле при пересчете массива(не спрашивайте зачем мне такой, у меня свои тараканы) - как анимация, только в консоле. Если есть специфические классы, буду рад узнать

Answer 1

Можете просто просить поток, в котором выполняется программа, поспать некоторое время. Ну вот так, к примеру:

while (true)
{
    // Какие-то вычисления
    Console.WriteLine("Вывести вычисления");
    System.Threading.Thread.Sleep(500); 
}

А если ваша программа делает какие-то дорогие вычисления, то вы можете заметить, что результат выводится не каждые полсекунды, а каждые 0.5 + времяНаВычисления секунды.

Чтобы выводить результат как можно быстрее, но не раньше, чем через определенный промежуток времени, можете воспользоваться таким кодом:

int timeToSleep = 500;
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
while (true)
{
    sw.Reset();
    sw.Start();
    // Какие-то долгие вычисления
    Console.WriteLine("Вывести вычисления");
    System.Threading.Thread.Sleep(timeToSleep - (int)sw.ElapsedMilliseconds);
}

Мы перед тем, как начинать вычисления, засекаем время, а после просим поток поспать timeToSleep - времяЗатраченноеНаВычисления миллисекунд.

READ ALSO
Возможно c# + js взаимодействие? [требует правки]

Возможно c# + js взаимодействие? [требует правки]

Всё в шапкеНужно с c# внедрить скрипт в браузер в виде JS

167
C# UWP Получить DisplayName установленных UWP приложений

C# UWP Получить DisplayName установленных UWP приложений

Стоит задача получить список приложений на ПКЕсть WPF приложение, преобразованное в UWP через "мост"

194
Стеганография WAV файла

Стеганография WAV файла

ЗдравствуйтеРеализую стеганографический метод LSB для WAV файла

214
Создание акта в word C#

Создание акта в word C#

Доброго времени сутокНужно создать акт в word на основе данных, имеющихся на winforms

214