C#4.0的新BlockingCollection沒有回答一個簡單的要求,我們需要:
*併發隊列的任務物品。
*消費者 - 一次有限的N個線程 - 從線程池(線程不專用於此隊列,並且在隊列中沒有項目時不會被阻止)。 對於資源使用特別有用,我們需要一次只限制一個(N = 1)線程,並且隊列可以不時排空。C#4.0和排隊有限的非專用線程池線程消費者
SmartThreadPool有一個很好的實現了這一目的,使用線程組的1
我一直在尋找新的C#4.0平行的lib一個很好的解決方案,充分利用了淨內部線程池的大小。 我可以想出一些解決方案,但我不知道是否有優雅的東西,我錯過了。
您認爲如何?
問候, 施洛米
嗨Talljoe,謝謝你的回覆!這些任務並不意味着長時間運行,儘管他們一次只能完成一項任務的限制。因此,使用線程池仍然相關。 Rx擴展是一個有趣的想法,我計劃檢查它(tnx!)。除此之外,您建議的解決方案與我想象並可能實施的類似。 – shlomiw 2011-04-17 11:37:28
我的錯誤,我認爲消費者是在BlockingCollection上阻塞的線程池任務。 – Talljoe 2011-04-17 11:40:55