Задержка запроса базы данных при включении (автозаполнение)

1

У меня есть текстовое поле, у меня есть как 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;
}

Благодарю!

  • 0
    Извините, этот код работает хорошо. из-за того, что я установил неправильное завершение события для текстового поля.
Теги:
wpf

1 ответ

1

Всегда есть ключевое событие, поэтому последнее, что произойдет после последнего нажатия клавиши:

Console.WriteLine("Start");
timerFilter.Start();

Чтобы убедиться, что ваш таймер остановлен после фильтрации результатов, добавьте вызов "Стоп" в обработчик фильтра:

private void Filter(Object source, ElapsedEventArgs e)
{
    Console.WriteLine("Filter");
    timerFilter.Stop();
}
  • 0
    Да, мой код, как и вы, но он все еще огонь.
  • 0
    Я имею в виду, когда я набираю текстовое поле, после 5 с событие будет вызываться, хотя я печатаю.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню