Как правильно выводить на форму значения таймера из экземпляра собственного класса на C#? Необходимо создать класс с таймером. То есть у каждого экземпляра класса должен быть свой таймер. Как правильно сделать так, чтобы на форме при срабатывании таймера обновлялись его значения?
Для того чтобы создать класс с таймером и иметь возможность выводить значения таймера на форму, можно использовать событие таймера и делегаты.
Вот пример кода на 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();
Таким образом, при срабатывании таймера значения будут обновляться на форме.