PropertyCollection.ICollection.IsSynchronized Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá hodnotu označující, zda je přístup k ICollection je synchronizován (bez vláken).
property bool System::Collections::ICollection::IsSynchronized { bool get(); };
bool System.Collections.ICollection.IsSynchronized { get; }
member this.System.Collections.ICollection.IsSynchronized : bool
ReadOnly Property IsSynchronized As Boolean Implements ICollection.IsSynchronized
Hodnota vlastnosti
true
pokud je přístup k ICollection souboru synchronizovaný (bezpečný z více vláken), v opačném případě false
.
Implementuje
Poznámky
SyncRoot vrátí objekt, který lze použít k synchronizaci přístupu k objektu ICollection.
Většina tříd kolekce v System.Collections oboru názvů také implementuje synchronizovanou metodu, která poskytuje synchronizovanou obálku kolem podkladové kolekce.
Výčet prostřednictvím kolekce není vnitřně procedurou bezpečnou pro přístup z více vláken. I v případě, že jde o synchronizovanou kolekci, mohou úpravy provádět i ostatní vlákna, což způsobuje vyvolání výjimky enumerátorem. Abyste zajistili bezpečnost vláken během výčtu, můžete kolekci zamknout během celého výčtu nebo zachytit výjimky, které jsou výsledkem změn provedených jinými vlákny.
Následující příklad ukazuje, jak uzamknout kolekci SyncRoot pomocí příkazu během celého výčtu:
ICollection myCollection = new ICollection();
lock(myCollection.SyncRoot) {
foreach (Object item in myCollection) {
// Insert your code here.
}
}
Dim myCollection As New ICollection()
Dim item As Object
SyncLock myCollection.SyncRoot
For Each item In myCollection
' Insert your code here.
Next item
End SyncLock