我在訪問相同BlockingCollection的C#應用程序中使用了兩個線程。這工作正常,但我想檢索第一個值兩次,因此兩個線程檢索相同的值*。多線程BlockingCollection相同的值
幾秒鐘後,我想輪詢兩個線程的currentIndex並刪除每個值<索引。因此,例如,線程的最低currentIndex爲5,應用程序將刪除隊列中索引0-5處的項目。另一個解決方案是在所有線程處理該值時刪除隊列中的值。
我該如何做到這一點?我想我需要另一種類型的緩衝區..?
預先感謝您!
*如果.Take()被thread1調用,則該項目在集合中被刪除,而thread2不能再次獲得相同的項目。
更新:
我想數據存儲在緩衝器中,因此,例如線程1的數據保存到HDD和線程2分析(相同)的數據(並行)。
你問的是非常不尋常的。我懷疑它說的是你的程序設計中的一個更大的問題。你能給我們多一點關於你的程序的信息 - 特別是數據流?我懷疑我們可以爲您提供更好的選擇。 –
更新了第一篇文章。 – Odrai