Synchronized Método (Hashtable)
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Hashtable.Synchronized (Método) (Hashtable)

 

Devuelve un contenedor sincronizado (seguro para subprocesos) para Hashtable.

Espacio de nombres:   System.Collections
Ensamblado:  mscorlib (en mscorlib.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true)]
public static Hashtable Synchronized(
	Hashtable table
)

Parámetros

table

Hashtable que se va a sincronizar.

Valor devuelto

Type: System.Collections.Hashtable

Contenedor sincronizado (seguro para subprocesos) para Hashtable.

Exception Condition
ArgumentNullException

tableis null.

El Synchronized método es seguro en subprocesos para varios lectores y escritores.Además, el contenedor sincronizado asegura que no hay un único escritor escribir a la vez.

Enumerar una colección no es un procedimiento seguro para subprocesos.Incluso cuando una colección está sincronizada, otros subprocesos pueden modificarla, lo que hace que el enumerador produzca una excepción.Para garantizar la seguridad para 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.

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

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

Este método es una operación o (1).

En el ejemplo siguiente se muestra cómo sincronizar un Hashtable, determinar si un Hashtable está sincronizada y utilizar sincronizado Hashtable.

using System;
using System.Collections;
public class SamplesHashtable  {

   public static void Main()  {

      // Creates and initializes a new Hashtable.
      Hashtable myHT = new Hashtable();
      myHT.Add( 0, "zero" );
      myHT.Add( 1, "one" );
      myHT.Add( 2, "two" );
      myHT.Add( 3, "three" );
      myHT.Add( 4, "four" );

      // Creates a synchronized wrapper around the Hashtable.
      Hashtable mySyncdHT = Hashtable.Synchronized( myHT );

      // Displays the sychronization status of both Hashtables.
      Console.WriteLine( "myHT is {0}.", myHT.IsSynchronized ? "synchronized" : "not synchronized" );
      Console.WriteLine( "mySyncdHT is {0}.", mySyncdHT.IsSynchronized ? "synchronized" : "not synchronized" );
   }
}
/* 
This code produces the following output.

myHT is not synchronized.
mySyncdHT is synchronized.
*/ 

Universal Windows Platform
Disponible desde 10
.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar:
© 2016 Microsoft