2012-03-17 47 views
0

有沒有增加AutoResetEvent,或類似的c#庫?遞增autoresetevent c#

如何才能實現一個高效的實現,或者說解決沒有這樣做的問題呢?

問題:爲了明確我的需要,我有一個生產者/消費者情況,我有一個生產者數量不明的人,以及固定數量的消費者。

編輯:忘了提一個問題,我不能使用.NET 4.0,所以我不能用ConcurrentQueue<T>:「(我需要使用.NET 2.0堅持現在

+1

http://msdn.microsoft.com/en-us/library/yy12yx1f%28en-us,VS.90%29.aspx – 2012-03-17 20:23:51

回答

2

退房如果Semaphore會爲您的方案工作。

+0

+1這是'經典'解決方案,一定會奏效。 – 2012-03-18 01:36:17

1

你見過.NET 4的ConcurrentQueue<T>?它負責所有這一切爲您服務。

既然你不能使用.NET 4,你可以在System.Threading命名空間中使用AutoResetEvent

+0

啊!我忘了提及,我無法使用.NET 4.0,因爲我需要.Net 2.0符合系統!那麼你會建議什麼? – Vort3x 2012-03-17 20:22:44

+0

@ Vort3x - 已更新。 – 2012-03-17 20:25:52

+0

A.White謝謝,但據我瞭解,這不是遞增。即「兩個調用靠得太近,所以第二個調用在一個線程被釋放之前發生,只有一個線程被釋放。就好像第二個電話沒有發生。 ' - msdn文檔。所以服務線程將只服務於隊列中的一個項目,而不是兩個。 – Vort3x 2012-03-17 20:29:43