Подтвердить что ты не робот

Безопасность потоков словаря <TKey, TValue>

Если я инициализирую общий словарь один раз, и дальнейшие добавления/обновления/удаления не разрешены, безопасно ли иметь несколько потоков, читающих его без блокировки (если предположить, что словарь инициализирован до начала чтения)?

В справочной системе есть примечание к неосновной HashTable, которая гласит, что она безопасна для нескольких читателей, но я не видел подобного не для Generic Dictionary

4b9b3361

Ответ 1

Для вашей будущей ссылки документация находится здесь:

http://msdn.microsoft.com/en-us/library/xfhwa508.aspx

В нем говорится:

Словарь может поддерживать несколько считывателей одновременно, пока коллекция не модифицировано. Даже так, перечисление через коллекцию по существу не является потокобезопасным процедура. В редком случае, когда перечисление связано с записью доступа, сбор должен быть заблокирован во время всего перечисления. Чтобы доступ к коллекции был доступен несколькими потоками для чтения и писать, вы должны реализовать свои собственные синхронизации.

Ответ 2

Да, это безопасно, если вы больше не модифицируете словарь. Безопасность потоков - это только проблема сценариев чтения/записи