Задать значение переменной из другого потока - Visual Basic .NET
Формулировка задачи:
Листинг программы
- Imports System.Threading
- Public Class Form1
- Dim th As New Thread(AddressOf c), a As Integer
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- th.Start()
- MsgBox(a)
- End Sub
- Sub c()
- a = 2
- End Sub
- End Class
Решение задачи: «Задать значение переменной из другого потока»
textual
Листинг программы
- Imports System.Threading
- Public Class Form1
- Public Event DataReceived()
- Dim th As New Thread(AddressOf c), a As Integer
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Debug.Print(Thread.CurrentThread.ManagedThreadId.ToString())
- AddHandler Me.DataReceived, AddressOf CallBack
- th.Start()
- End Sub
- Sub c()
- Debug.Print(Thread.CurrentThread.ManagedThreadId.ToString())
- Thread.Sleep(2000) 'задержка для примера
- a = 2
- RaiseEvent DataReceived()
- End Sub
- Sub CallBack()
- Debug.Print(Thread.CurrentThread.ManagedThreadId.ToString())
- MsgBox(a)
- 'если нужно взаимодействие с элементами формы, то нужно использовать Control.Invoke(). Т.к. Событие вызывается из дочернего потока
- End Sub
- End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д