Документация ConcurrentDictionary
не содержит явного состояния, поэтому я думаю, мы не можем ожидать, что делегаты valueFactory
и updateValueFactory
синхронизируются с их выполнением (из операций GetOrAdd() и AddOrUpdate() соответственно).
Итак, я думаю, что мы не можем реализовать использование ресурсов внутри них, которые нуждаются в параллельном управлении без ручного внедрения нашего собственного параллельного элемента управления, возможно, просто используя [MethodImpl(MethodImplOptions.Synchronized)]
над делегатами.
Я прав? Или тот факт, что ConcurrentDictionary
является потокобезопасным, мы можем ожидать, что вызовы этих делегатов будут автоматически синхронизированы (поточно-безопасные тоже)?