#wpf #vb.net
#wpf #vb.net
Вопрос:
У меня есть что-то вроде
Private Sub Window_Loaded
Timer1 = New DispatcherTimer
Timer1.Interval = TimeSpan.FromMilliseconds(2000)
AddHandler Timer1.Tick, AddressOf TickMe
Timer1.Start()
End Sub
Private Sub TickMe()
//calls a function here
End Sub
Он вызывает функцию только один раз и не вызывает ее впоследствии. Как мне сделать так, чтобы он вызывался каждые 2 секунды?
Комментарии:
1. Что делает функция внутри
TickMe
? Весь ваш пользовательский интерфейс зависает? Вы пробовали делать что-то простое, какConsole.WriteLine
вTickMe
?2. он вызывает другую функцию для изменения текстовой метки
3. Итак, что заставляет вас думать, что он вызывается только один раз? Вы установили точку останова или просто наблюдаете за меткой?
4. повторяя метку yes, предполагается, что она увеличивается на 1 каждые 2 секунды, от 0 до 1 yes, затем она останавливается там
5. Я хочу сказать, что
TickMe
функция, вероятно , вызывается каждые две секунды, но у вас неправильная логика обновления метки. Проверьте свою предпосылку!
Ответ №1:
Я не уверен, что вы добавили в обработчик событий, но для меня это работает нормально. Попробуйте поместить вызов MessageBox.Show("hello world")
в обработчик, и вы увидите, что DispatcherTimer будет продолжать запускаться до тех пор, пока вы не вызовете Stop()
.