Collection<T>.ICollection.SyncRoot Propiedad

Definición

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

C#
object System.Collections.ICollection.SyncRoot { get; }

Valor de propiedad

Un objeto que se puede usar para sincronizar el acceso a la clase ICollection. En la implementación predeterminada de Collection<T>, esta propiedad siempre devuelve la instancia actual.

Implementaciones

Comentarios

Las implementaciones predeterminadas de colecciones en System.Collections.Generic no se sincronizan.

Enumerar una colección no es intrínsecamente un procedimiento seguro para subprocesos. A fin de garantizar la seguridad de los subprocesos, se puede bloquear la colección durante toda la enumeración. Para permitir que varios subprocesos obtengan acceso de lectura y escritura a la colección, debe implementar su propia sincronización.

SyncRoot devuelve un objeto que se puede usar para sincronizar el ICollectionacceso a . La sincronización solo es efectiva si todos los subprocesos bloquean este objeto antes de acceder a la colección. En el código siguiente se muestra el uso de la SyncRoot propiedad para C#, C++y Visual Basic.

C#
ICollection ic = ...;
lock (ic.SyncRoot) {
   // Access the collection.
}

La recuperación del valor de esta propiedad es una operación O(1).

Se aplica a

Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Consulte también