Dot-Net

.NET 上的執行緒安全阻塞隊列實現

  • May 14, 2010

我正在尋找.NET 的執行緒安全阻塞隊列的實現。“執行緒安全阻塞隊列”是指: - 執行緒安全訪問隊列,其中 Dequeue 方法呼叫阻塞執行緒,直到其他執行緒放入(入隊)某個值。

到目前為止,我已經找到了這個: http ://www.eggheadcafe.com/articles/20060414.asp (但它適用於.NET 1.1)。

有人可以評論/批評此實現的正確性。或者推薦另一個。提前致謝。

這個在 .NET 中創建阻塞隊列怎麼樣?

如果您需要 .NET 1.1(我從問題中不確定),只需刪除泛型並替換Tobject.

作為參考,.NET 4 引入了System.Collections.Concurrent.BlockingCollection<T>解決此問題的類型。對於非阻塞隊列,您可以使用System.Collections.Concurrent.ConcurrentQueue<T>. 請注意,ConcurrentQueue<T>這可能會用作BlockingCollection<T>OP 使用的基礎數據儲存。

引用自:https://stackoverflow.com/questions/801528