gpt4 book ai didi

c# - 如何在并发字典中实现 tryAdd 多个条目?

转载 作者:太空宇宙 更新时间:2023-11-03 12:17:22 24 4
gpt4 key购买 nike

我有一个并发字典,我用它来做一些线程安全的功能。

例如我有以下代码:

var  myConcurrenctDictionary= new ConcurrentDictionary<int,int>();
if (myConcurrenctDictionary.TryAdd(personId, personId) == false)
{
throw new Exception("");
}

但现在我需要一种线程安全的方法来尝试一次向并发字典添加多个值,如果失败则返回 false 并且不插入指定 ID 的任何值。

那么,您能否指导我如何实现它?

最佳答案

ConcurrentDictionary<TKey, TValue>类型公开 GetOrAdd以线程安全的方式将不存在的键添加到字典中的方法。您似乎正在寻找一种方法来一次批量添加多个项目。假设您确实确实需要该功能,则没有简单的方法来实现它。不幸的是,ConcurrentDictionary 没有向 child 公开其内部锁定机制(没有protected)。所以你最好的选择是实现一个新的 CustomConcurrentDictionary , 基于简单 Dictionary<K, V>输入,而不是 ConcurrentDictionary<K, V> .您可以使用 this code作为引用。

关于c# - 如何在并发字典中实现 tryAdd 多个条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49104935/

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