Таймер. Робота з таймером в C #

Доброго часу доби! У цій статті я розповім про використання таймера в програмах, написаних на C #, а в кінці ми напишемо просту програму годинник. Стаття буде практичного характеру і для її розуміння Вам потрібно володіти початковими знаннями програмування на мові C # і роботи з WindowsForms додатками. Але спочатку, я розповім для чого ж потрібні таймери в програмах. Найчастіше, таймери використовують для періодичного виклику певного методу (підпрограми). У компонента «Timer» є спеціальне (і єдина подія) - «Tick». Ось обробник цієї події, далі обробник таймера, і викликається із заданою програмістом періодичністю.

Як я вже сказав, розповідь про таймерах буде в контексті WindowsForms. Так що я пропоную створити новий проект програми з графічним інтерфейсом (WindowsForms). Після чого, на головну форму з панелі інструментів перенести компонент «Timer». Розташування компонента «Timer» в панелі інструментів показано на малюнку нижче.

компонент Timer

Даний компонент не є видимим на формі, тому, в дизайнера форм Ви його не побачите, але він буде в якомусь контейнері по формою, як показано на малюнку нижче.

Компонент Timer в дизайнера (під формою)

І якщо вибрати дану компонент в дизайнера форм, то можна побачити його властивості, яких не так багато - всього шість. Я розповім про найважливіші, які ми будемо використовувати. А зараз, давайте подивимося на властивості таймера (див. Малюнок нижче).

Властивості компонента Timer

  • Властивість «Name» задає назву таймера (скоріше навіть його унікальне ім'я, так як на формі може бути не один такий компонент);
  • Властивість «Eneble» робить таймер доступним (якщо встановлено в true) або навпаки - недоступним (якщо встановлено в false);
  • Властивість «Interavl» задає інтервал, через який буде періодично викликатися обробник таймера.

Так само у компонента «Timer» є два цікавлять нас методу:

  • Start - запускає таймер (після виклику цього методу, буде періодично «спрацьовувати» обробник таймера);
  • Stop - зупиняє таймер (після виклику цього методу, обробник таймера перестане «спрацьовувати»).

А ось і той самий подія «Tick»:

Подія (Tick) таймера

А тепер, давайте приступимо до практики. Для наочності, я вирішив написати програму годинник. Звичайно, повноцінними годинами цю програму назвати не можна, але вона буде показувати час. Причому, не завжди, а тільки коли ми запустимо таймер, який буде «спрацьовувати» раз в секунду, і виводити поточний час в напис на формі. Для запуску і зупинки таймера будуть використовуватися дві кнопки.

Після того як я переніс всі необхідні елементи на головну форму, вона стала виглядати так, як показано на малюнку нижче.

Головне вікно програми

Як бачите, програма максимально проста: дві кнопки, так текстова напис. А тепер, давайте перейдемо до коду. Я створив обробники подій кліка для кожної копки і події «Tick» таймера. Код наведено нижче:

// Оброблювач натискання на кнопку "Старт" private void StartBtn_Click (object sender, EventArgs e) {// Робимо таймер доступним MainTimer.Enabled = true; // Запускаємо таймер MainTimer.Start (); } // Оброблювач натискання на кнопку "Стоп" private void StopBtn_Click (object sender, EventArgs e) {// Зупиняємо таймер MainTimer.Stop (); // Знову робимо таймер недоступним MainTimer.Enabled = false; // "Скидаємо" текст напису в початковий стан TimeLbl.Text = "Сьогодні:"; } // Оброблювач таймера (викликається із заданою періодичністю) private void MainTimer_Tick (object sender, EventArgs e) {// Раз в секунду буде виводитися такий текст (з поточним часом) TimeLbl.Text = string.Format ( "Часовий пояс GMT {0 } ", DateTime.Now.ToString (" HH: mm: ss ")); }

Все досить просто! А ось так буде виглядати запущена програма після натискання на кнопку «Старт».

Програма з таймером

Кінець!