2011-10-19 29 views
1

我剛剛有一個新的最後時刻的想法來承擔任務,所以我正在運行到StackExchange以獲得快速幫助。VB.NET 4.0:尋找執行多個線程,但等到所有線程都完成後再恢復

我想要做的是在一行中執行一系列的方法,每個方法都在自己的線程中。我希望應用程序等到所有這些線程都完成之後,程序纔會恢復。它還必須使用託管線程(線程池)。

您可以提供哪些快速示例來幫助我一路走來?如果它太複雜,我應該知道哪些事情,以便我自己Google?

+0

「連續」中的「每個都在自己的線程中」與jive很差。線程之間有順序。不要啓動一個線程並等待它,不妨在沒有線程的情況下運行代碼。 –

回答

4

如果您使用的是.NET 4,最好使用任務並行庫。

在這種情況下,最簡單的方法聽起來像Parallel.Invoke,它將調用Action代表的每個集合,使用適當的並行度,並且等到它們全部完成後才返回。

如果您需要更細粒度的控制,則可以將它們分別作爲單獨的Task啓動,並使用Task.WaitAll等待一切完成。

+0

非常好!我覺得很髒,因爲它很容易。就好像我在欺騙系統= P。 – oscilatingcretin