Каждый использует много List. Мне нужно перебрать этот список, поэтому я использую известный SyncRoot шаблон.
Недавно я заметил в этом сообщение о том, что SyncRoot следует избегать в пользу "встроенной" безопасности потоков (каждый метод блокирует частный объект, не подвергая его воздействию используя свойство SyncRoot). Я могу это понять, и частично согласен с этим.
Вопрос в том, что List <T> класс не реализует свойство SyncRoot, даже если реализует ICollection, которые отображают свойство SyncRoot. Я говорю об этом, если код
List<int> list = new List<int>()
list.SyncRoot;
сообщите мне следующую ошибку компилятора:
ошибка CS0117: "System.Collections.Generic.List" не содержит определения для "SyncRoot"
... Если это так, как я могу синхронизировать общедоступное свойство типа List <T> когда он повторяется?