Método Stack.Synchronized() en C#

Este método (viene bajo System.Collections Namespace) se usa para devolver un contenedor sincronizado (seguro para subprocesos) para la pila. Para garantizar la seguridad de subprocesos de la pila, todas las operaciones deben realizarse a través de este contenedor.

Sintaxis:

System.Collections.Stack estático público sincronizado (System.Collections.Stack stack);

Valor de retorno: Devuelve un envoltorio sincronizado alrededor de la pila.

Excepción : este método dará ArgumentNullException si la pila es nula.

Los siguientes programas ilustran el uso del método mencionado anteriormente:

Ejemplo 1:

// C# code to illustrate the
// Stack.Synchronized() Method
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Stack
        Stack myStack = new Stack();
  
        // Inserting the elements into the Stack
        myStack.Push("Geeks");
        myStack.Push("Geeks Classes");
        myStack.Push("Noida");
        myStack.Push("Data Structures");
        myStack.Push("GeeksforGeeks");
  
        // Creates a synchronized
        // wrapper around the Stack
        Stack st = Stack.Synchronized(myStack);
  
        // Displays the synchronization
        // status of both Stack
        Console.WriteLine("myStack is {0}.", myStack.IsSynchronized ?
                                "Synchronized" : "Not Synchronized");
  
        Console.WriteLine("st is {0}.", st.IsSynchronized ? 
                      "Synchronized" : "Not Synchronized");
    }
}

Producción:

myStack is Not Synchronized.
st is Synchronized.

Ejemplo 2:

// C# code to illustrate the
// Stack.Synchronized() Method
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Stack
        Stack myStack = new Stack();
  
        // Inserting the elements into the Stack
        myStack.Push("C");
        myStack.Push("C++");
        myStack.Push("Java");
        myStack.Push("C#");
        myStack.Push("Python");
  
        // it will give error as
        // the parameter is null
        Stack sq = Stack.Synchronized(null);
    }
}

Error de tiempo de ejecución:

Excepción no controlada:
System.ArgumentNullException: el valor no puede ser nulo.
Nombre del parámetro: pila

Referencia:

Publicación traducida automáticamente

Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *