Compartir a través de


Stack<T>.ICollection.SyncRoot Propiedad

Definición

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

property System::Object ^ System::Collections::ICollection::SyncRoot { System::Object ^ get(); };
object System.Collections.ICollection.SyncRoot { get; }
member this.System.Collections.ICollection.SyncRoot : obj
 ReadOnly Property SyncRoot As Object Implements ICollection.SyncRoot

Valor de propiedad

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

Implementaciones

Comentarios

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

La enumeración a través de una colección no es intrínsecamente un procedimiento seguro para subprocesos. Para garantizar la seguridad de los subprocesos durante la enumeración, puede bloquear la colección durante toda la enumeración. Para permitir que varios subprocesos puedan acceder a la colección para leer y escribir, 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. El código siguiente muestra el uso de la SyncRoot propiedad .

ICollection ic = ...;
lock (ic.SyncRoot) {
   // Access the collection.
}
Dim ic As ICollection = ...
SyncLock ic.SyncRoot
   ' Access the collection.
End SyncLock

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

Se aplica a

Consulte también