ConcurrentDictionary对象

时间:2022-07-07 16:25:27
ConcurrentDictionary<int, List<a>> dic = new ConcurrentDictionary<int, List<a>>();
dic.TryAdd(, null);
List<a> val;
dic.TryGetValue(, out val); //可以存在value为null的项 val = new List<a>();
val.Add(new a() {val="" }); //此时dic中的key=1的value未改变 List<a> val2;
dic.TryGetValue(, out val2); dic.Clear(); dic.TryAdd(,val2); val2.Add(new a() { val = "" }); //此时key=1中的value以改变

TryGetValue方法为copy,out出的对象为不同的内存空间

TryAdd方法为指针赋值,指向的相同内存空间

class a
{
public string val { get; set; }
}