Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Hashtable.SyncRoot (Propiedad)

Obtiene un objeto que se puede utilizar para sincronizar el acceso a Hashtable.

Espacio de nombres:  System.Collections
Ensamblado:  mscorlib (en mscorlib.dll)
public virtual Object SyncRoot { get; }

Valor de propiedad

Tipo: System.Object
Objeto que se puede utilizar para sincronizar el acceso a Hashtable.

Implementaciones

ICollection.SyncRoot

Para crear una versión sincronizada de Hashtable, utilice el método Synchronized. No obstante, las clases derivadas pueden proporcionar su propia versión sincronizada de Hashtable mediante la propiedad SyncRoot. El código de sincronización deberá realizar operaciones en la propiedad SyncRoot de Hashtable, y no directamente en Hashtable. Esto garantiza un funcionamiento correcto de las colecciones que se derivan de otros objetos. En concreto, mantiene la sincronización correcta con otros subprocesos que podrían modificar al mismo tiempo el objeto Hashtable.

La enumeración en una colección no es en esencia un procedimiento seguro para la ejecución de subprocesos. Incluso cuando una colección está sincronizada, otros subprocesos todavía pueden modificarla, lo que hace que el enumerador produzca una excepción. Para garantizar la seguridad de los subprocesos durante la enumeración, es posible bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos.

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


Hashtable myCollection = new Hashtable();
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
¿Te ha resultado útil?
(Caracteres restantes: 1500)

Adiciones de comunidad

AGREGAR
© 2013 Microsoft. Reservados todos los derechos.