簡體   English   中英

如何同時處理集合中的n個項目

[英]How to process n items in a collection concurrently

我正在建立一個從List繼承的類。 將要在運行時將項目添加到此集合中,而我想要的是讓此類在添加n個項目的每個塊后自動對其進行處理。

所以這是場景。

1]創建從列表繼承的新類-CollectionX

2]在運行時,我們將多次調用ColX.Add(T)

3]當ColX有500個或更多項目時,是將它們移到臨時區域並對其進行處理,然后將其刪除。 請記住,所有while項目仍將添加到ColX。

所以我想我的問題是如何很好地實現這一點並確保它是線程安全的。

要執行的工作必須分塊完成,因此我不認為隊列可以工作,因為您一次只能使1個項目出隊。

我認為即時通訊正在尋找比實際類型或庫更多的模式。

有人可以幫忙嗎?

不要讓CollectionX從List繼承。

而是在內部使用2個列表,將Add()設置為1,然后處理另一個。

這樣,您只需要lock列表的交換即可。 如果出現時間問題,您甚至可以使用第三個列表來防止阻塞。

暫無
暫無

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

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