0条评论
还没有人评论过~
背景:上游给出图像检测的结果,屏幕上的像素位置,我结合信息放在ConcurrentDictionary中,每次这个检测结果都是有变化的,没有好的办法去更新,只能清空重新赋值。。。
两个线程:
线程A:先清空这个ConcurrentDictionary,然后给里面写数据(两个操作在一个方法里)
//定义
public static ConcurrentDictionary<string,Point> info = new ConcurrentDictionary<string,Point>();
public static void funcA(){
info.Clear();
.........
info.tryAdd(string,point);
}
线程B遍历这个ConcurrentDictionary
public static void funB(){
foreach(var key in className.info.Keys){
string theKey=key;//就是这里会抛出空指针异常,说什么 未将对象设置到引用的实例什么的
Point p=className.info[k];
......................................
}
}
没有好的办法取更新是什么情况,ConcurrentDictionary不是有好几个更新方法么
而且,为什么要清空?直接创建一个新的ConcurrentDictionary替换掉之前那个不行么
还有,这个为什么要用两个线程