新线程在执行模块程序,怎么委托主线程刷新UI?public
vb.net吧
全部回复
仅看楼主
level 3
故人😺 楼主
新线程在执行模块程序,怎么委托主线程刷新UI?
public 新线程 as threading.thread
public delegate sub 委托(byref I as int32)
public 按钮名 as string
sub form1_locad(....)...
新线程 = new threading.thread(addressof 模块程序)
新线程.start()
end sub
sub 模块程序()
按钮名 = "按钮名"
按钮1.text = 按钮名
'怎么让控件的名字刷新,我试过委托主线程但是报错看图
新线程.abort
end sub
2020年02月25日 18点02分 1
level 11
invoke或者beinginvoke
2020年02月26日 01点02分 2
用invoke报错呀 关于窗口句柄什么的错误 看上图!
2020年02月26日 03点02分
@故人😺 :要用UI主线程里面那个窗体来invoke
2020年02月27日 03点02分
@闪星2 我的问题正是无法委托窗体 报错,不过没关系了,我直接在窗体里边运行
2020年02月27日 08点02分
level 3
故人😺 楼主
虽然在模块中还是不行,不过我把要刷新UI的程序都移到了form1类下,不仅实现了多线程UI刷新,还解决了之前遇到的所有问题。
2020年02月26日 10点02分 3
level 7
Private Sub btn1_Click(sender As Object, e As EventArgs) Handles btn1.Click
Dim old As String = Me.Text
Me.Text = old & "What's your problem!"
Dim t1 As Task = New Task(Sub()
Threading.Thread.Sleep(5000)
Me.Invoke(New Action(Sub()
Me.Text = old
End Sub))
End Sub)
t1.Start()
End Sub
2020年02月28日 17点02分 4
好复杂[小乖]
2020年02月29日 07点02分
level 7
代码调不了格式
2020年02月29日 10点02分 5
谢谢您 我总算是名称怎么传递对象了
2020年02月29日 19点02分
1