У меня тут какая-то странность.
У меня есть такая пустота
private void Filter()
{
MyDataView.RowFilter = string.Format("Name LIKE '%{0}%'", tb_Filter.Text);
}
Затем у меня есть обработчик прошедшего таймера, и его метод выглядит так
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
Filter();
}
Я положил timer.AutoReset в false и поместил timer.Start () внутри обработчика событий для кнопки.Я нажимаю кнопку, ничего не происходит.Он просто на некоторое время зависает, а затем выдает это:
An unhandled exception of type 'System.NullReferenceException' occurred in PresentationFramework.dll
Additional information: Object reference not set to an instance of an object.
Если я запускаю метод Filter () из любого другого обработчика событий (button_click, textoted, что угодно), он работает нормально,Если я помещу любой другой код в обработчик события timer_Elapsed, перед вызовом Filter () он запустится.Например:
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
Console.WriteLine("this works");
}
напечатает «это работает» на консоли, когда таймер истечет.
Я сбит с толку.Что я здесь не так делаю?
Почему мой метод Filter () запускается для любого события, кроме timer_elapsed?
РЕДАКТИРОВАТЬ: Получено более подробное исключение:
Первое случайное исключение типа «System.InvalidOperationException» произошло в WindowsBase.dll
Дополнительная информация: вызывающий поток не может получить доступ к этому объекту, поскольку другой> поток владеет им.