У меня есть текстовое поле, у меня есть как Timer, так и DispatcherTimer для задержки на клавиатуре, но это не так, как я ожидал.
Событие загорается, когда интервал завершен. Через 5 секунд событие Fiter загорится.
Вот мой код:
Переменная Init
DispatcherTimer timerFilter;
//or
//Timer timerFilter = new Timer(5000);
Событие Init
InitializeComponent();
timerFiter = new DispatcherTimer { Interval = TimeSpan.FromSeconds(5) };
timerFiter.Tick += (s, args) =>
{
Filter();
};
//or
//timerFilter.Elapsed += Filter;
При нажатии клавиши
Console.WriteLine("Start");
timerFilter.Start();
//or
//timerFilter.Enabled = true;
При нажатии клавиши
Console.WriteLine("Destroy");
timerFiter.Stop();
//or
//timerFilter.Enabled = false;
Мое событие
private void Filter(Object source, ElapsedEventArgs e)
{
Console.WriteLine("Filter");
timerFiter.Stop();
//or
//timerFilter.Enabled = false;
}
Благодарю!
Всегда есть ключевое событие, поэтому последнее, что произойдет после последнего нажатия клавиши:
Console.WriteLine("Start");
timerFilter.Start();
Чтобы убедиться, что ваш таймер остановлен после фильтрации результатов, добавьте вызов "Стоп" в обработчик фильтра:
private void Filter(Object source, ElapsedEventArgs e)
{
Console.WriteLine("Filter");
timerFilter.Stop();
}