Поделиться через


TreeNodeCollection.SyncRoot Свойство

Определение

Возвращает объект, который можно использовать для синхронизации доступа к объекту TreeNodeCollection .

public:
 property System::Object ^ SyncRoot { System::Object ^ get(); };
public object SyncRoot { get; }
member this.SyncRoot : obj
Public ReadOnly Property SyncRoot As Object

Значение свойства

A Object , который можно использовать для синхронизации доступа к объекту TreeNodeCollection.

Реализации

Комментарии

Свойство SyncRoot предоставляет синхронизированную версию TreeNodeCollection кода, которую можно использовать с синхронизированным кодом ..

Предостережение

Свойство IsSynchronized этого класса всегда возвращается false, указывающее, что TreeNodeCollection класс не синхронизирован (не потокобезопасный).

Синхронизация кода должна выполнять операции с SyncRoot объектом объекта TreeNodeCollection, а не непосредственно на TreeNodeCollection самом себе. Это обеспечивает правильную работу коллекций, производных от других объектов. В частности, он поддерживает правильную синхронизацию с другими потоками, которые могут одновременно изменять TreeNodeCollection объект.

Замечание

Объект, возвращаемый в этой реализации, — это System.Collections.ArrayList объект, используемый для хранения TreeNode объектов в коллекции.

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

Дополнительные сведения о SyncRoot свойстве см. в ICollection.SyncRoot свойстве System.Collections.ICollection интерфейса.

Применяется к

См. также раздел