Это моя реализация приложения Win Form с таймером обратного отсчета:
readonly DateTime myThreshold;
public Form1()
{
InitializeComponent();
myThreshold = Utils.GetDate();
Timer timer = new Timer();
timer.Interval = 1000; //1 second
timer.Tick += new EventHandler(t_Tick);
timer.Start();
//Threshold check - this only fires once insted of each second
if (DateTime.Now.CompareTo(myThreshold) > 0)
{
// STOP THE TIMER
timer.Stop();
}
else
{
//do other stuff
}
}
void t_Tick(object sender, EventArgs e)
{
TimeSpan timeSpan = myThreshold.Subtract(DateTime.Now);
this.labelTimer.Text = timeSpan.ToString("d' Countdown - 'hh':'mm':'ss''");
}
Требуемое поведение - остановить таймер и отметку функция при достижении порога.
Теперь этого не происходит, потому что проверка выполняется только один раз, так как она помещается в инициализацию формы 1.
Существует ли способ добавить эту проверку в способ немедленно остановить таймер после выполнения условия?