头都想炸了,并行计算10次以后结果变了。。。
System.Threading.Tasks.Parallel.For(0, sum, (i) =>
{
//需要并行运算的方法
)};
算法修改的是一个 ref List<int>,通过按钮的按下事件实现
结果,点击10次结果正确,10次以后结果就开始变化了,100次以后面目全非....感觉是某一条记录一直在覆盖其他的数据,最后整个表的记录都变成一模一样了。
去掉并行,是正确的。
哪位大神能解释一下,这是怎么回事?
------解决方案--------------------公用资源被调用的时候没有锁定
------解决方案--------------------如果没有修改,只是读取,就不需要上锁了