DispatcherTimer запускается только один раз

#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() .