Compartir a través de


SortedList.SyncRoot Propiedad

Definición

Obtiene un objeto que se puede utilizar para sincronizar el acceso a un objeto 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

Valor de propiedad

Objeto que puede utilizarse para sincronizar el acceso al objeto SortedList.

Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo bloquear la colección mediante la SyncRoot propiedad durante toda la enumeración.

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

Recuperar el valor de esta propiedad es una O(1) operación.

Comentarios

Para crear una versión sincronizada del SortedList objeto, use el Synchronized método . Sin embargo, las clases derivadas pueden proporcionar su propia versión sincronizada de SortedList mediante la SyncRoot propiedad . El código de sincronización debe realizar operaciones en de SyncRootSortedList, no directamente en .SortedList De este modo, se garantiza el funcionamiento correcto de las colecciones derivadas de otros objetos. En concreto, mantiene la sincronización adecuada con otros subprocesos que podrían modificar simultáneamente el SortedList objeto.

Enumerar una colección no es intrínsecamente un procedimiento seguro para subprocesos. Incluso cuando una colección está sincronizada, otros subprocesos todavía pueden modificarla, lo que hace que el enumerador produzca una excepción. Con el fin de garantizar la seguridad para la ejecución de subprocesos durante la enumeración, se puede bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos.

Se aplica a

Consulte también