gpt4 book ai didi

c# - .net 4.0 并发队列字典

转载 作者:行者123 更新时间:2023-11-30 16:33:40 25 4
gpt4 key购买 nike

我想使用 .NET 4.0 中新的并发集合来解决以下问题。

我想要的基本数据结构是一个生产者消费者队列,会有一个消费者和多个生产者。

有类型为 A、B、C、D、E 的项目将被添加到此队列中。 A、B、C 类型的项目以正常方式添加到队列中并按顺序处理。

然而,类型 D 或 E 的项目只能在队列中存在零次或一次。如果要添加其中一个并且已经存在另一个尚未处理的相同类型,那么这应该更新队列中的另一个。更新后队列位置不会改变(即不会去队列的后面)。

哪个 .NET 4.0 类最适合这个?

最佳答案

我认为 .net 4 中没有这样的(优先级)队列支持原子 AddOrUpdate 操作。只有 ConcurrentDictionary 支持这个,但如果你需要保留顺序,它就不适合了。

所以您的选择可能是使用两者的某种组合。

但是,请注意,一旦对并发结构进行组合操作,就会失去并发结构的安全性;您必须自己实现锁定机制(在此处查看此类情况的示例:A .Net4 Gem: The ConcurrentDictionary - Tips & Tricks)。

第二种选择是谷歌搜索一些第 3 方实现。

关于c# - .net 4.0 并发队列字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2942611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com