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

Método SortedList.Synchronized (SortedList)

 

Publicado: octubre de 2016

Devuelve un contenedor sincronizado (seguro para subprocesos) para un objeto SortedList.

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

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true)]
public static SortedList Synchronized(
	SortedList list
)

Parámetros

list
Type: System.Collections.SortedList

Objeto SortedList que se va a sincronizar.

Valor devuelto

Type: System.Collections.SortedList

Contenedor sincronizado (seguro para subprocesos) para el objeto SortedList.

Exception Condition
ArgumentNullException

El valor de list es null.

Para garantizar la seguridad para subprocesos de un SortedList de objeto, todas las operaciones deben realizarse a través de este contenedor solo.

Enumerar una colección no es intrínsecamente un procedimiento seguro para subprocesos. Incluso cuando una colección está sincronizada, otros subprocesos todavía pueden modificarla, lo que hace que el enumerador produzca una excepción. Con el fin de garantizar la seguridad para la ejecución de subprocesos durante la enumeración, se 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 la SyncRoot propiedad durante toda la enumeración.

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

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

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

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

   public static void Main()  {

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

      // Creates a synchronized wrapper around the SortedList.
      SortedList mySyncdSL = SortedList.Synchronized( mySL );

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

mySL is not synchronized.
mySyncdSL is synchronized.
*/ 

Plataforma universal de Windows
Disponible desde 10
.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: