В общем случае операция Contains
не очень полезна в параллельной коллекции.Проблема заключается в том, что, как только вы определите, что коллекция «содержит» или не содержит какой-либо объект, логика, которую вы выполняете в результате этой проверки, больше не действительна, так как другой поток мог добавить или удалить элемент, следующий сразу за ним..
Класс ConcurrentDictionary содержит этот метод для реализации IDictionary, но фактически предполагается использовать AddOrUpdate
, GetOrAdd
и подобные атомарные методы.