簡體   English   中英

通用.Net生產者/消費者

[英]Generic .Net Producer/Consumer

我正在考慮在C#中實現通用的生產者/消費者對+處理隊列的想法。 我們的想法是你可以創建實現適當的IProducer和IConsumer接口(提供默認實現)的對象,它們將主要由委托組成,將它們傳遞給QueueProcessor類實例,告訴它你想要多少個消費者,然后去。

但我對自己說,“自我,這肯定已經做過了。”

那么有沒有人知道C#中生產者/消費者模式的良好 通用實現(VB.Net也可以)? 我正在尋找的基本要求:

  • 對生成和使用的類型(輸入,排隊任務和輸出類型或其任何組合)使用泛型
  • 允許您指定將為隊列工作的消費者數量
  • 允許您將多個隊列鏈接或鏈接到管道中(對於多個消費者來說很棘手,我知道)
  • 允許您實施自己的生產者和消費者
  • 允許你將任何IEnumerable轉換為生產者(好吧,如果我必須自己實現,只要它可能)
  • 基於委托(您可以使用lambda語法為基本消費者或生產者工作處理單個項目)

或者如果沒有,哪些陷阱阻止了它,你對如何實現它有任何想法嗎?

Microsoft CCR包含您需要的大部分內容。

以下是一些代碼示例和使用說明。

Marc Gravell在這個答案中寫了一個很好的阻塞隊列示例。

你看過MiscUtil嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM