VB9具有多个参数的新线程

时间:2009-05-19 19:04:46

标签: .net vb.net multithreading lambda

我正在尝试创建一个新线程并发送多个参数以及一个委托报告回来。

在VB8中,我总是讨厌这样做,因为它需要引入一个新的类/结构或委托。

在VB9中有更好的方法吗?

我正在寻找类似这样的解决方案:

   Dim Th As New Thread(AddressOf DoStuff)
   Th.Start(param1, param2, AddressOf ReportStatus)

我对LINQ和Lambda并不擅长,所以我正在跳跃,有人会告诉我一些很酷的技巧来做到这一点。

3 个答案:

答案 0 :(得分:2)

可以将匿名函数传递给线程构造函数。

Dim Th = New Thread(Sub() DoStuff(param1, param2, AddressOf ReportStatus))

但遗憾的是VB9中没有匿名潜艇(它们将在VB10中 - 在C#中这应该已经有效)。

答案 1 :(得分:1)

不。 VB9没什么新东西。

答案 2 :(得分:0)

也许您已经熟悉了这一点,但根据您的应用程序,使用ThreadPool可能非常有用且简单。我不太了解使用ThreadPool.QueueUserWorkItem发送参数,但是this页面似乎提供了一个涉及lambda表达式和匿名类型的好教程。它在C#中,但我确信它会转换为VB。