netlib.narod.ru | < Назад | Оглавление | Далее > |
Таимер — это устройство, периодически уведомляющее приложение о завершении заданного интервала времени. Ваша программа устанавливает этот интервал, как бы говоря: «Предупреждай меня каждую десятую долю секунды» — и таймер вызывает обработчик события десять раз в секунду.
В пространствах имен System.Timers, System.Threading и System.Windows.Forms определены три разных класса с именем Timer. Я буду использовать тот, что определен в пространстве System.Windows.Forms. С этим таймером программисты для Microsoft Windows знакомы лучше всего. Он совмещен с другими событиями Windows и наиболее прост в использовании.
Хотя таймер и не столь важное устройство ввода, как клавиатура или мышь, он все же может быть очень полезен и находит применение во многих приложениях Windows Forms. Наиболее очевидным приложением для таймера является программа-часы, и в этой главе таких программ будет предостаточно. Однако есть и другие, возможно, не такие очевидные области применения таймера.
Многозадачность. Хотя Windows является средой с вытесняющей многозадачностью, рекомендуется, чтобы после обработки события программы возвращали управление Windows как можно быстрее. Иначе темп может существенно замедлиться. Если программа должна выполнить большой объем работы, ее можно разделить на несколько частей и выполнять каждую часть по получении события таймера.
Обновление данных. Таймер подходит для обновления постоянно изменяющейся информации, например, при выводе данных о свободных ресурсах или проценте выполнения какой-либо задачи.
Автосохранение. Таймер позволяет периодически сохранять на диске результаты работы программы.
Прекращение работы демо-версий программ. Некоторые демо-версии программ самостоятельно завершаются, скажем, через 30 минут после запуска. В таких приложениях таймер подает сигнал на прекращение работы. (Пример такой программы, CloseInFive, приведен в этой главе.)
Пошаговое продвижение. Обычно необходимо с заданной скоростью перемещать графические объекты в игре или переключать страницы в программах-описаниях. Таймер помогает избежать несовместимости, связанной с разными скоростями процессоров. Таймер часто применяют в анимации.
Таймер можно рассматривать и как гарант, обеспечивающий передачу управления программе. Если после выполнения конструктора или обработчика события программа отдает управление, обычно нельзя определить, когда произойдет следующее событие. В этом смысле событие таймера более определенно.
Я сказал более, потому что таймер не обладает ритмичностью метронома. События, вырабатываемые классом Timer, синхронизированы с другими событиями. Иначе говоря, событие таймера никогда не прервет процедуру обработки другого события, выполняющуюся в том же потоке. Если обработка события идет слишком долго, она задержит событие таймера.
netlib.narod.ru | < Назад | Оглавление | Далее > |