Collection<T>.ICollection.SyncRoot Eigenschap

Definitie

Hiermee haalt u een object op dat kan worden gebruikt om de toegang tot het ICollectionobject te synchroniseren.

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

Waarde van eigenschap

Een object dat kan worden gebruikt om de toegang tot de ICollection. In de standaard implementatie van Collection<T>, deze eigenschap retourneert altijd de huidige instantie.

Implementeringen

Opmerkingen

Standaard implementaties van verzamelingen in System.Collections.Generic worden niet gesynchroniseerd.

Het inventariseren via een verzameling is intrinsiek geen thread-veilige procedure. Om de veiligheid van threads tijdens de inventarisatie te garanderen, kunt u de verzameling vergrendelen tijdens de gehele inventarisatie. Als u wilt toestaan dat de verzameling toegankelijk is voor meerdere threads voor lezen en schrijven, moet u uw eigen synchronisatie implementeren.

SyncRoot retourneert een object dat kan worden gebruikt om de toegang tot het ICollectionobject te synchroniseren. Synchronisatie is alleen van kracht als alle threads dit object vergrendelen voordat ze toegang krijgen tot de verzameling. De volgende code toont het gebruik van de SyncRoot eigenschap.

ICollection ic = ...;
lock (ic.SyncRoot) {
   // Access the collection.
}
Dim ic As ICollection = ...
SyncLock ic.SyncRoot
   ' Access the collection.
End SyncLock

Het ophalen van de waarde van deze eigenschap is een O(1)-bewerking.

Van toepassing op

Zie ook