Ejemplo n.º 1
0
        public static void TimerCallbackSample()
        {
            TimerExampleState s = new TimerExampleState();

            // Делегат - представляет метод, обрабатывающий вызовы от события Timer.
            TimerCallback timerDelegate = new TimerCallback(CheckStatus);

            // dueTime - количество времени до начала использования параметра
            //           callback, в миллисекундах. Следует задать поле
            //           Timeout.Infinite для того, чтобы не допустить запуск
            //           таймера. Задайте значение ноль (0) для немедленного
            //           запуска таймера.
            // period -  временной интервал между вызовами параметра callback,
            //           в миллисекундах. Следует задать поле Timeout.Infinite
            //           для отключения периодического сигнализирования.
            // - начинаем работать ч\з секунду с интервалом в секунду
            Timer timer = new Timer(timerDelegate, s, 1000, 1000);

            s.tmr = timer;

            while (s.tmr != null)
            {
                Thread.Sleep(0);
            }
            Console.WriteLine("Пример с таймером завершен.");
        }
Ejemplo n.º 2
0
        static void CheckStatus(Object state)
        {
            TimerExampleState s = (TimerExampleState)state;

            s.counter++;
            Console.WriteLine("{0} Checking Status {1}.", DateTime.Now.TimeOfDay, s.counter);
            if (s.counter == 5)
            {
                // Меняет время запуска и интервал межу вызовами метода таймера.
                // - начинаем работать ч\з 5 секунд с интервалом в 0.1 секунду
                (s.tmr).Change(5000, 100);
                Console.WriteLine("подождите (5 сек)...");
            }
            if (s.counter == 10)
            {
                Console.WriteLine("Удаляем таймер...");
                s.tmr.Dispose();
                s.tmr = null;
            }
        }