ConcurrentDictionary操作

Posted cg-931210

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ConcurrentDictionary操作相关的知识,希望对你有一定的参考价值。

  • AddOrUpdate:如果键不存在,方法会在容器中添加新的键和值,如果存在,则更新现有的键和值。
  • GetOrAdd:如果键不存在,方法会向容器中添加新的键和值,如果存在则返回现有的值,并不添加新值。
  • TryAdd:尝试在容器中添加新的键和值。
  • TryGetValue:尝试根据指定的键获得值。
  • TryRemove:尝试删除指定的键。
  • TryUpdate:有条件的更新当前键所对应的值。
  • GetEnumerator:返回一个能够遍历整个容器的枚举器。
 public class Test
    {
        private static ConcurrentDictionary<string, int> testDictionary = new ConcurrentDictionary<string, int>();

        public void test()
        {
            string _key = "a";
            int _value = 0;
            int curValue = 1;

            testDictionary.TryAdd(_key, _value);
            testDictionary.AddOrUpdate(_key, _value, (key, value) => { return value = curValue; });
            testDictionary.TryGetValue(_key, out int getValue);
            testDictionary.GetOrAdd("b", 2);
        }
    }

 

以上是关于ConcurrentDictionary操作的主要内容,如果未能解决你的问题,请参考以下文章

ConcurrentDictionary字典操作竟然不全是线程安全的?

ConcurrentDictionary让你的多线程代码更优美

ConcurrentDictionary源码概读

一起来看CORE源码 ConcurrentDictionary

ConcurrentDictionary和Dictionary对比

ConcurrentDictionary线程不安全么,你难道没疑惑,你难道弄懂了么?