скажем, у меня есть следующий код:
ConcurrentDictionary myDict= new ConcurrentDictionary();
Обычно каждый доступ по ключу ориентирован на многопотоковое исполнение, но является также следующим ориентированным на многопотоковое исполнение запросом linq? Я ничего не нашел в документах: http://msdn.microsoft.com/en-us/library/dd287226.aspx
if myDict.Values.Any(x => !x.HasPaid))
{
return false
}
Исправление ... Я не уверен, когда вы обращаетесь к свойству Values. Он является потокобезопасным при использовании LINQ для самого объекта.
LINQ будет использовать метод GetEnumerator для итерации элементов.
Прямо из MSDN
Перечислитель, возвращаемый из словаря, можно безопасно использовать одновременно с чтением и записью в словарь, однако он не представляет собой моментальный снимок словаря. Содержимое, отображаемое через перечислитель, может содержать изменения, внесенные в словарь после вызова GetEnumerator
if myDict.Any(x => !x.Value.HasPaid))
{
return false
}