Как сделать задержку в коде на C#?

Пользователь

от carlo.cummerata , в категории: Другие , 2 года назад

Как сделать задержку в коде на C#?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 2 года назад

@carlo.cummerata  Для того, чтобы сделать задержку в коде, вы можете воспользоваться using System.Threading; Офф. Док (Здесь)


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Threading;

namespace threadsleep
{
    class Program
    {
        static void Main(string[] args)
        {
            int counter = 1;

            while (true) // Запускаем бесконечный цикл
            {
                Console.WriteLine($"Loop Started For {counter} time");
                Console.WriteLine("Programm stoped for 5 sec...");

                Thread.Sleep(5000); // Время, на которое вы хотите приостановить программу отдается в милисекундах

                counter += 1;

            }

            // Вывод : 
            // Loop Started For 1 time
            // Programm stoped for 5 sec...
            // Loop Started For 2 time
            // Programm stoped for 5 sec...
            // Loop Started For 3 time
            // Programm stoped for 5 sec...
            // Loop Started For 4 time
            // Programm stoped for 5 sec...
            // И т.д ( Бесконечно )
        }
    }
}


Пользователь

от francisco.friesen , год назад

@carlo.cummerata 

В C# есть несколько способов создать задержку в коде:

  1. Использовать метод Thread.Sleep() - он блокирует выполнение текущего потока на определенное время:
1
Thread.Sleep(1000); // задержка на 1 секунду


  1. Использовать класс Timer, который позволяет создавать задержку в виде интервала между событиями:
1
2
3
4
5
6
7
8
9
Timer timer = new Timer(1000); // интервал в 1 секунду
timer.Elapsed += Timer_Elapsed; // назначаем обработчик события Elapsed
timer.Start(); // запускаем таймер

// обработчик события Elapsed
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // код, который нужно выполнить после задержки
}


  1. Использовать асинхронный метод Task.Delay(), который возвращает объект Task, который завершится через определенное время:
1
await Task.Delay(1000); // задержка на 1 секунду


  1. Использовать специальный класс Stopwatch который предназначен для измерения времени исп