Я пытаюсь реализовать таймер для флажка. Связывание для флажка выполняется с использованием свойства CaptureColorBind. Когда я когда-либо нажимаю флажок захвата цвета (captureColor = true), его необходимо проверить в течение 5 секунд, а затем флажок необходимо снять. Я пытаюсь распечатать дату и время до и после таймера для проверки. Его печать до времени должным образом, но время datetime, которое я печатаю в обработчике прошедшего события, печатается n раз в зависимости от того, сколько раз я нажимаю флажок цвета захвата. Это первый раз, когда я нажимаю, он печатает дату и время один раз, второй раз, когда я нажимаю, он печатает дважды и так далее. Не уверен, что я делаю неправильно.C# Таймер внутри свойства
private System.Timers.Timer timer = new System.Timers.Timer();
public bool CaptureColorBind
{
get
{
return this.captureColor;
}
set
{
this.captureColor = value;
if (captureColor == true)
{
Console.WriteLine(DateTime.Now.ToString());
Console.WriteLine();
timer.Elapsed += new ElapsedEventHandler(capturecolor_timer);
timer.Interval = 5000;
timer.Enabled = true;
}
if (null != this.PropertyChanged)
{
this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("CaptureColorBind"));
}
}
}
// Timer for capturecolor checkbox
private void capturecolor_timer(object sender, ElapsedEventArgs e)
{
timer.Enabled = false;
this.captureColor = false;
//this.colorCheckbox.IsChecked = false;
Console.WriteLine(DateTime.Now.ToString());
Console.WriteLine();
if (null != this.PropertyChanged)
{
this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs("CaptureColorBind"));
}
}
Отлично, это работает. спасибо – Santosh