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

21 Авг 2019 в 07:07
333 +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 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир