Compartir a través de


StringDictionary.SyncRoot Propiedad

Definición

Obtiene un objeto que se puede usar para sincronizar el acceso a .StringDictionary

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

Object que se puede usar para sincronizar el acceso a .StringDictionary

Ejemplos

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

StringDictionary myCollection = new StringDictionary();
lock(myCollection.SyncRoot)
{
    foreach (Object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As New StringDictionary()
SyncLock myCollection.SyncRoot
    For Each item As Object In myCollection
        ' Insert your code here.
    Next item
End SyncLock

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

Comentarios

Las clases derivadas pueden proporcionar su propia versión sincronizada de StringDictionary mediante la SyncRoot propiedad . El código de sincronización debe realizar operaciones en de SyncRoot , StringDictionaryno directamente en .StringDictionary Esto garantiza el funcionamiento adecuado de las colecciones derivadas de otros objetos. En concreto, mantiene la sincronización adecuada con otros subprocesos que podrían modificar simultáneamente el StringDictionary objeto.

La enumeración a través de una colección no es intrínsecamente un procedimiento seguro para subprocesos. Incluso cuando se sincroniza una colección, otros subprocesos todavía pueden modificar la colección, lo que hace que el enumerador inicie una excepción. Para garantizar la seguridad de los subprocesos durante la enumeración, 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