2009-05-19 41 views
1

我正在嘗試創建一個新線程併發送多個參數以及一個委託來報告回來。VB9帶多個參數的新線程

在VB8中我總是討厭這樣做,因爲它需要引入一個新的類/結構或委託。

在VB9中有沒有更好的方法來做到這一點?

我正在尋找一個解決方案是這樣的:

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

我不擅長與LINQ和Lambda,所以我跳,有人會告訴我一些很酷的技巧來做到這一點。

回答

2

可能將一個匿名函數傳遞給線程構造函數。

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

但遺憾的是沒有VB9匿名潛艇(他們將在VB10 - 在C#這應該已經工作)。

+0

好吧,我認爲這是可能的在VB9,恥辱MS – 2009-05-19 19:18:39

1

沒有。 VB9中沒有新東西。

0

也許您已經熟悉了這一點,但取決於您的應用程序,使用ThreadPool可能非常有用和簡單。我不太瞭解使用ThreadPool.QueueUserWorkItem發送參數,但this頁似乎給出了一個包含lambda表達式和匿名類型的好教程。它在C#中,但我相信它會轉換爲VB。

+0

其實我試圖給類似的東西,但該網頁是在C#(我可以閱讀C#和轉換除Linq和lambad :))。此外,我不知道它有多少可以應用於VB.NET – 2009-05-19 19:18:16