如果我使用:Label1.Invoke(Sub() Label1.Text = "Test")
,则此更新成功,但是,如果我尝试这样做:Txt_Response.Invoke(Sub() Txt_Response.Text = "Test")
,则仅在其余代码已执行且线程空闲之后,文本才会更新。
是否有一种简单的方法来完成此任务而没有任何额外的负担?
答案 0 :(得分:1)
我不想长途跋涉,但我想我需要这样做!
基本上是在下面的修复程序中,我已经添加了提供控件的功能,因此它对所有内容都是动态的,但是出于这个问题,我将为文本框提供它。
Private Delegate Sub ResponseUpdateEventHandler(ByVal message As String)
Private Sub UpdateResponseBox(ByVal message As String)
If Txt_Response.InvokeRequired Then
Txt_Response.Invoke(New ResponseUpdateEventHandler(AddressOf UpdateResponseBox), New Object() {message})
Else
Txt_Response.AppendText(message + Environment.NewLine)
End If
End Sub
然后只需使用UpdateResponseBox("Connecting to device, Please wait...")