#c# #.net #wpf
#c# #.net #wpf
Вопрос:
Я использую метод, который вызывается для двух таймеров в качестве их обработчиков прошедших событий, а также этот метод вызывается в конструкторе моего класса. Тело этого метода в основном находится в
Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =>
{ ... }));
У меня возникли некоторые аномалии. Что лучше использовать вместо таймера?
Комментарии:
1. Возможно, вы могли бы описать эти аномалии и предоставить нам больше информации, например, о том, что происходит в теле делегата и как часто выполняется планирование вашего таймера.
Ответ №1:
Я задал пару вопросов в комментарии к вопросу, но для решения:
У меня возникли некоторые аномалии. Что лучше использовать вместо таймера?
Если вы хотите периодически что-то делать в Dispatcher
потоке, используйте DispatcherTimer
вместо этого. Тогда вам не нужно возвращаться к потоку пользовательского интерфейса, поскольку таймер уже будет «тикать» в Dispatcher
потоке.
Ответ №2:
Это зависит от того, насколько коротким является интервал таймеров и сколько вы делаете в прошедших событиях. Кроме того, поток пользовательского интерфейса изменяется каждый раз, когда истекает один из таймеров.