我正在尝试使用此代码从一个单独的线程更新标签,但是它不起作用。有人可以帮我修改此功能,以便我可以在单独的线程中调用它吗?
Public Class Threader
Private Sub message_UI_Update(email As String, message1 As String)
If Me.InvokeRequired Then
Me.Invoke(New MethodInvoker(AddressOf message_UI_Update), email, message1)
Else
Label5.Text = email
Label6.Text = message1
End If
End Sub
End Class
-更新-
经过研究,我可以使用此代码实现这一目标。我希望我使用正确的方法。
Public Class Threader
Public Delegate Sub mydelegate(str As String, message1 As String)
Private Sub message_UI_Update(email As String, message1 As String)
If Me.InvokeRequired Then
Me.Invoke(New mydelegate(AddressOf message_UI_Update), email, message1)
Else
Label5.Text = email
Label6.Text = message1
End If
End Sub
End Class
答案 0 :(得分:0)
您可以使用Invoke(如果需要立即使用)或BeginInvoke(在下一个绘画事件中)。
Me.BeginInvoke(Sub()
Label5.Text = email
Label6.Text = message1
End Sub)
您可以将其放在使用标签进行工作的线程/ Sub中,而无需其他子。