Часы без использования таймера (потоки) - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Пытаюсь разобраться с потоками. Пробую сделать так, чтобы в метке на форме показывалось текущее время, разумеется без использования контрола Timer.
Листинг программы
  1. Imports System.Threading
  2. Public Class Form1
  3. ' Создаем новый экземпляр класса SecondThread
  4. Dim MyThread As New SecondThread()
  5. ' Создаем делегат ThreadStart и передаем адрес процедуры MyTime экземпляра класса SecondThread
  6. Dim bThreadStart As New ThreadStart(AddressOf MyThread.MyTime)
  7. ' Создаем новый объект потока, в котором вызывается делегат
  8. Dim bThread As New Thread(bThreadStart)
  9. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  10. bThread.Priority = ThreadPriority.Highest
  11. bThread.Name = "Часы"
  12. bThread.IsBackground = True
  13. End Sub
  14. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  15. ' Запускаем поток с помощью метода Start
  16. bThread.Start()
  17. End Sub
  18. End Class
  19. 'Описываем новый класс с именем SecondThread
  20. Public Class SecondThread
  21. ' Внутри класса объявляем новую процедуру MyTime
  22. Public Sub MyTime()
  23. ' которая при вызове работает постоянно, т. к. значение условия цикла While всегда True
  24. Do While True
  25. Form1.Label1.Text = Format(Now, "hh:mm:ss")
  26. Loop
  27. End Sub
  28. End Class
"часики" стоят как вкопанные

Решение задачи: «Часы без использования таймера (потоки)»

textual
Листинг программы
  1. Dim MyThread As New SecondThread(Me)
  2.  
  3. ...
  4.  
  5. Public Class SecondThread
  6.  
  7.     Private f As Form1
  8.     Public Sub New(f As Form1)
  9.         Me.f = f
  10.     End Sub
  11.  
  12.     Public Sub MyTime()
  13.         Do While True
  14.             f.Invoke(Sub() f.Label1.Text = Format(Now, "hh:mm:ss"))
  15.             Thread.Sleep(500)
  16.         Loop
  17.     End Sub
  18. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут