Как правильно выводить на форму значения таймера из экземпляра собственного класса на C#? Необходимо создать класс с таймером. То есть у каждого экземпляра класса должен быть свой таймер. Как правильно сделать так, чтобы на форме при срабатывании таймера обновлялись его значения?

21 Авг 2019 в 07:07
309 +1
0
Ответы
1

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

Вот пример кода на C#:

using System;
using System.Timers;
public class CustomTimer
{
private Timer timer;
public event EventHandler<int> TimerElapsed;
public CustomTimer()
{
timer = new Timer();
timer.Interval = 1000; // Интервал в миллисекундах
timer.Elapsed += (sender, e) =>
{
TimerElapsed?.Invoke(this, (int)timer.Interval / 1000);
};
}
public void Start()
{
timer.Start();
}
public void Stop()
{
timer.Stop();
}
}

Затем, на вашей форме можно использовать этот класс следующим образом:

CustomTimer customTimer = new CustomTimer();
customTimer.TimerElapsed += (sender, seconds) =>
{
this.Invoke((MethodInvoker)delegate
{
label1.Text = $"Elapsed: {seconds} seconds";
});
};
customTimer.Start();

Таким образом, при срабатывании таймера значения будут обновляться на форме.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир