我正在尝试创建一个新线程并发送多个参数以及一个委托报告回来。
在VB8中,我总是讨厌这样做,因为它需要引入一个新的类/结构或委托。
在VB9中有更好的方法吗?
我正在寻找类似这样的解决方案:
Dim Th As New Thread(AddressOf DoStuff)
Th.Start(param1, param2, AddressOf ReportStatus)
我对LINQ和Lambda并不擅长,所以我正在跳跃,有人会告诉我一些很酷的技巧来做到这一点。
答案 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。