PropertyCollection.ICollection.IsSynchronized Vlastnost

Definice

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  

Platí pro

Viz také