Sdílet prostřednictvím


ReadOnlyCollectionBase.ICollection.IsSynchronized Vlastnost

Definice

Získá hodnotu označující, zda je synchronizován přístup k objektu ReadOnlyCollectionBase (bezpečný z více 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 objektu ReadOnlyCollectionBase synchronizován (bezpečný z více vláken), v opačném případě false. Výchozí formát je false.

Implementuje

Příklady

Následující příklad kódu ukazuje, jak uzamknout kolekci SyncRoot pomocí vlastnosti během celého výčtu.

// Get the ICollection interface from the ReadOnlyCollectionBase
// derived class.
ICollection^ myCollection = myReadOnlyCollection;
bool lockTaken = false;
try
{
    Monitor::Enter(myCollection->SyncRoot, lockTaken);
    for each (Object^ item in myCollection);
    {
        // Insert your code here.
    }
}
finally
{
    if (lockTaken)
    {
        Monitor::Exit(myCollection->SyncRoot);
    }
}
// Get the ICollection interface from the ReadOnlyCollectionBase
// derived class.
ICollection myCollection = myReadOnlyCollection;
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
' Get the ICollection interface from the ReadOnlyCollectionBase
' derived class.
Dim myCollection As ICollection = myReadOnlyCollection
SyncLock myCollection.SyncRoot
    For Each item As Object In myCollection
        ' Insert your code here.
    Next item
End SyncLock

Načtení hodnoty této vlastnosti je O(1) operace.

Poznámky

Objekt ReadOnlyCollectionBase není synchronizován. Odvozené třídy mohou poskytovat synchronizovanou verzi ReadOnlyCollectionBase třídy pomocí SyncRoot vlastnosti .

Výčet prostřednictvím kolekce nemůže být 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. K zaručení bezpečnosti přístupu z více vláken můžete buďto zamknout kolekci na celou dobu práce s výčtem, nebo zachycovat výjimky vzniklé v důsledku změn prováděných ostatními vlákny.

Platí pro

Viz také