请问关于VB .NET 2005的线程问题

想问一个问题,我有一个module1.func1,是需要传入参数的模块。在form1里,按button1能够触发module1.func1,但这个模块运行需要一点时间。为... 想问一个问题,我有一个module1.func1,是需要传入参数的模块。

在form1里,按button1能够触发module1.func1,但这个模块运行需要一点时间。为了防止主程序卡着假死,需要新建一个线程把module1.func1运行。请问我该怎么写代码来

1. 新建一个线程?
2. 运行这个带参数的function?
补充一下,是VB 2005, WINFORM。谢谢

谢谢,再请问yourblueleaf,我的func1是有多个参数要传进去的,该怎么写传参呢?
展开
 我来答
yourblueleaf
2008-06-10 · TA获得超过497个赞
知道小有建树答主
回答量:532
采纳率:0%
帮助的人:205万
展开全部
VB的问题怎么问到这里来了?

Dim LeafThread As System.Threading.Thread
Dim LeafDelegate As System.Threading.ParameterizedThreadStart
LeafDelegate = New System.Threading.ParameterizedThreadStart(AddressOf module1.func1)
LeafThread = New System.Threading.Thread(LeafDelegate)
LeafThread.Start()

直接使用线程调用一个过程不能加多参数
只能指定一个参数
指定参数其实也很简单
就是把最后一句
LeafThread.Start()
修改为
LeafThread.Start(参数)
你如果要调用多个参数是不行的
但是我的一般做法就是你先运行线程以后
再在线程的过程里调用多参数的过程
比如
Dim LeafThread As System.Threading.Thread
Dim LeafDelegate As System.Threading.ParameterizedThreadStart
LeafDelegate = New System.Threading.ParameterizedThreadStart(AddressOf module1.func1)
LeafThread = New System.Threading.Thread(LeafDelegate)
LeafThread.Start()

sub func1()
func2(a,b,c)
end sub

sub func2(byval a,byval b,byval c)

end sub

只能这样来实现
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式