Таймеры

Последнее обновление: 31.10.2015

Одним из важнейших классов, находящихся в пространстве имени System.Threading, является класс Timer. Данный класс позволяет запускать определенные действия по истечению некоторого периода времени.

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

class Program
{
    static void Main(string[] args)
    {
        int num = 0; 
		// устанавливаем метод обратного вызова
        TimerCallback tm = new TimerCallback(Count);
		// создаем таймер
        Timer timer = new Timer(tm, num, 0, 2000);

        Console.ReadLine();
    }
    public static void Count(object obj)
    {
        int x = (int)obj;
        for (int i = 1; i < 9; i++, x++)
        {
            Console.WriteLine($"{x * i}");      
        }
    }
}

Первым делом создается объект делегата TimerCallback, который в качестве параметра принимает метод. Причем данный метод должен в качестве параметра принимать объект типа object.

И затем создается таймер. Данная перегрузка конструктора таймера принимает четыре параметра:

  • объект делегата TimerCallback

  • объект, передаваемый в качестве параметра в метод Count

  • количество миллисекунд, через которое таймер будет запускаться. В данном случае таймер будет запускать немедленно после создания, так как в качестве значения используется 0

  • интервал между вызовами метода Count

И, таким образом, после запуска программы каждые две секунды будет срабатывать метод Count.

Если бы нам не надо было бы использовать параметр obj у метода Count, то при создании таймера мы могли бы указывать в качестве соответствующего параметра знаечние null: Timer timer = new Timer(tm, null, 0, 2000);

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850