SortedList.SyncRoot 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á objekt, který lze použít k synchronizaci přístupu k objektu SortedList .
public:
virtual property System::Object ^ SyncRoot { System::Object ^ get(); };
public virtual object SyncRoot { get; }
member this.SyncRoot : obj
Public Overridable ReadOnly Property SyncRoot As Object
Hodnota vlastnosti
Objekt, který lze použít k synchronizaci přístupu k objektu SortedList .
Implementuje
Příklady
Následující příklad kódu ukazuje, jak uzamknout kolekci SyncRoot pomocí vlastnosti během celého výčtu.
SortedList^ myCollection = gcnew SortedList();
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);
}
}
SortedList myCollection = new SortedList();
lock (myCollection.SyncRoot)
{
foreach (object item in myCollection)
{
// Insert your code here.
}
}
Dim myCollection As New SortedList()
SyncLock myCollection.SyncRoot
For Each item In myCollection
' Insert your code here.
Next item
End SyncLock
Načtení hodnoty této vlastnosti je O(1)
operace.
Poznámky
Pokud chcete vytvořit synchronizovanou verzi objektu SortedList , použijte metodu Synchronized . Odvozené třídy však mohou poskytovat vlastní synchronizovanou verzi pomocí SortedListSyncRoot vlastnosti . Synchronizační kód musí provádět operace na objektu SyncRootSortedList, nikoli přímo v objektu SortedList. Tím zajistíte správnou funkci kolekcí, které jsou odvozeny z jiných objektů. Konkrétně udržuje správnou synchronizaci s jinými vlákny, která mohou současně měnit SortedList objekt.
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.