我有一个Dictionary<int, bool>
LINQ和字典线程安全
我有一个InvalidOperationException collection was modified
错误被处理,但难倒我为什么。
我想是的,唯一的代码是以下:
lock (lockObject)
{
AllowInputs[InputNumber] = true;
}
if (AllowInputs.Values.All(x => x == true))
{
//Do stuff
}
如果一个线程是锁定的语句修改值内而另一个线程正在执行All(x => x == true)
这将导致"Collection was modified"
errror?
谢谢,我将移动lock语句的结尾以包含All方法调用 – Jon