編輯:我正在開發與.NET 3.5。如何在.NET中每次啓動最多X個線程?
我有一個程序,DoSomething。 我必須啓動它X次。我想使用線程..但我想每次最多使用5個線程。 所以,我可以寫這樣的:
for i=0 to TimesToDo -1
Dim t as new Thread = new Thread(Addressof MyProcedure)
t.Start()
if TotalThread > 5 then Wait()
next i
確定這是「僞代碼」。在.NET中可能嗎? 其他一些問題是:我如何獲得我的線程運行的數量?是否有可能獲得結束線程的「信號」?
謝謝
檢查這個帖子http://stackoverflow.com/questions/444627/c-thread-pool-limiting-threads – Samich
在考慮等待,值得一提的是'Thread.Join'(http://msdn.microsoft.com/zh-cn/library/95hbf2ta.aspx),它會阻止調用線程,直到線程終止,同時繼續執行標準COM和SendMessage抽取。「*不幸的是,這並不直接適用於你的問題,因爲等待每個線程會嚴重限制並行性。 – Rob
線程池管理器已經做到了。首選,因爲它不會選擇5,它選擇一個在機器上運行良好的數字,匹配的CPU核心數量。 –