В контексте этого утверждения
Словарь может поддерживать несколько читателей одновременно, как долго поскольку сбор не изменяется. Тем не менее, перечисление через сбор по существу не является поточно-безопасная процедура. В редких случай, когда перечисление утверждает с доступом для записи, сбор должны быть заблокированы в течение всего перечисление. Чтобы обеспечить сбор для доступа к нескольким потокам для чтении и письме, вы должны выполнить собственную синхронизацию.
Что означает чтение и запись? Я понимаю, что чтение - это операция, которая ищет ключ и дает ссылку на это значение, а запись - операция, которая добавляет или удаляет пару значений ключа из словаря. Однако я не могу найти ничего убедительного в этом отношении.
Таким образом, большой вопрос заключается в том, что при внедрении словабельного словаря будет ли операция, которая обновляет значение для существующего ключа в словаре, должна рассматриваться как читатель или писатель? Я планирую иметь несколько потоков, обращаясь к уникальным клавишам в словаре и изменяя их значения, но потоки не будут добавлять/удалять новые ключи.
Очевидная импликация, предполагающая изменение существующего значения, не является операцией записи в словаре, заключается в том, что моя реализация потокового безопасного словаря может быть намного более эффективной, поскольку мне не нужно было бы получать эксклюзивную блокировку каждый раз, когда я попробуйте обновить значение до существующего ключа.
Использование ConcurrentDictionary из .Net 4.0 не является вариантом.