WPF: Как обновить GUI при быстро изменяющихся событиях
Добавить обработчик по таймеру:
Private updateGuiTimer As DispatcherTimer 'При загрузке окна инициализируем и запускаем таймер. Private Sub winLoaded(sender As Object, e As RoutedEventArgs) updateGuiTimer = New DispatcherTimer() updateGuiTimer.Interval = TimeSpan.FromMilliseconds(100) 'задаём период обновления AddHandler updateGuiTimer.Tick, AddressOf updateGui updateGuiTimer.Start() End Sub 'Обработчик события Timer.Tick(). Private Sub updateGui(ByVal sender As Object, ByVal e As EventArgs) txtLabel.Text = LabelPropValue 'здесь обновлять элементы GUI End Sub
Добавить обработчик события ререндеринга (происходит около 60 раз в секунду).
Private Sub winLoaded(sender As Object, e As RoutedEventArgs) AddHandler CompositionTarget.Rendering, AddressOf OnRendering End Sub Public Sub OnRendering(sender As Object, e As EventArgs) txtLabel.Text = SomeProp.ToString() 'здесь обновлять необходимые элементы GUI End Sub
Ключевые слова: :