Compartir por


DictionaryBase.ICollection.IsSynchronized Propiedad

Definición

Obtiene un valor que indica si el acceso a un DictionaryBase objeto está sincronizado (seguro para subprocesos).

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

Valor de propiedad

true es si el DictionaryBase acceso al objeto está sincronizado (seguro para subprocesos); en caso contrario, falsees . El valor predeterminado es false.

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.

ICollection myCollection = new ShortStringDictionary();
lock(myCollection.SyncRoot)
{
    foreach (Object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As ICollection = New ShortStringDictionary()
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

Un DictionaryBase objeto no está sincronizado. Las clases derivadas pueden proporcionar una versión sincronizada de la DictionaryBase clase mediante la SyncRoot propiedad .

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

Consulte también