2010-05-20 57 views
1

我負責將傳統Win32代碼中的類移植到.Net,並且我遇到了一個線程模型,我不確定如何以.Net 。基本上,Win32有一個工作線程,它調用WaitForMultipleObjects()並在特定的對象被觸發時執行特定的代碼段。這有一種先到先得的效果,我需要在自己的代碼中進行模擬。但我不確定在.Net中如何最好地做到這一點。有人有什麼主意嗎?幫助移植線程功能:Win32 - > .Net

我發現在.Net中沒有等效的WaitForMultipleObjects(),只有ThreadPool類似乎提供了我需要的大部分內容,但我不確定它是否是最好的,因爲我只有四個對象總計等待並執行代碼。

謝謝,丹尼爾

回答

1

嗯,有WaitHandle.WaitAnyWaitHandle.WaitAll - 它可以幫助您?

不可否認,我可能不會用這種方法開始:我會使用生產者/消費者隊列。你在使用.NET 4嗎?這有很多通過並行擴展支持更好的線程支持,這使得這種事情變得簡單。

+0

感謝John,WaitHandle就是這麼做的。正如你所建議的,我最初的想法是實現一個隊列來處理,所以我可以繼續。很高興知道並行擴展。 – JimDaniel 2010-05-20 16:57:00