vb.net的托管
答案:2 悬赏:80 手机版
解决时间 2021-02-27 01:06
- 提问者网友:饥饿走向夜
- 2021-02-26 07:11
我很想知道如果用托管啊啥的类似的方法如何跨线程使用一个控件那?越简单越好!最好是要vb的代码。原理说明也行~
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-02-26 07:53
跨线程操作控件需要走Invoke()方法。C#可以用Invoke+MethodInvoker+Lambda表达式来简单完成。vb就不知道怎么写了
全部回答
- 1楼网友:轻雾山林
- 2021-02-26 09:02
======================================
因为代码的执行速度n快 你又用if me.richtextbox1.invokerequired then
所以 这边在执行 那边也执行 导致冲突(貌似是这样的意思 我也说不清楚)
======================================
可以用委托去完成操作 保证不假死
我刚好之前有个实验实例 你可以看看
imports system.threading
public class form1
delegate sub dg(byval textt as string)
private sub button1_click(byval sender as system.object, byval e as system.eventargs) handles button1.click
dim t1 as new thread(new threadstart(addressof ds1))
t1.start()
dim t2 as new thread(new threadstart(addressof ds2))
t2.start()
end sub
sub ds1()
for i as integer = 0 to 3000
me.begininvoke(new eventhandler(addressof ds11), i)
thread.sleep(30)
application.doevents()
next
end sub
sub ds11(byval sender as system.object, byval e as system.eventargs)
listbox1.items.add(sender.tostring & chr(6) & textbox1.text)
end sub
sub ds2()
for i as integer = 0 to 3000
me.begininvoke(new eventhandler(addressof ds22), i)
thread.sleep(30)
application.doevents()
next
end sub
sub ds22(byval sender as system.object, byval e as system.eventargs)
textbox1.text = sender.tostring
end sub
end class
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯