Dictionary<TKey,TValue>.KeyCollection.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 Dictionary<TKey,TValue>.KeyCollection, 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.

SyncRootdevuelve un objeto que se puede usar para sincronizar el acceso a .ICollection 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.6, 2.0, 2.1
UWP 10.0

Consulte también