一个线程向ConcurrentDictionary中添加、更新、删除数据,另一个则从中读取数据。
但是在线程读取时,总会报错。
在输出框中的
引发的异常:“System.ArguementNullException”(位于mscorlib.dll中),值不能为null
按道理在foreach中,不会出现值不为null的异常
加个判断当那个值为null时进断点,看下当前diconary的数据是否正确,
你这个错误很有可能是数据问题导致的,和多线程操作ConcurrentDictionary应该没有多大关系。
用那个特别好用的 toArray(),然后就得出了,是数据的问题。淦!上游给数据中某些项有问题
建议写个demo发来
这是个大项目,我抽不出来这相关的demo
ConcurrentDictionary这个鬼东西有个ToArray()的方法,返回值为键值对的形式,在这返回值里面会保存ConcurrentDictionary这个鬼东西那个时刻的快照,然后发现里面的数据有问题,淦
读的时候,用TryGetValue方法,添加或更新用AddOrUpdate方法
知道key那倒好办,问题是key是上游传来不知道是啥的东西,没有规律,只能通过存在里面的对象属性判断