Propiedad Queue.IsSynchronized en C#

Esta propiedad se usa para obtener un valor que indica si el acceso a la cola está sincronizado (seguro para subprocesos) o no.

Sintaxis:

public virtual bool IsSynchronized { get; }

Valor de propiedad: esta propiedad devuelve verdadero si el acceso a la cola está sincronizado (seguro para subprocesos); de lo contrario, es falso. El valor predeterminado es falso.

Los siguientes programas ilustran el uso de la propiedad discutida anteriormente:

Ejemplo 1:

// C# code to illustrate the
// Queue.IsSynchronized Property
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Queue
        Queue myQueue = new Queue();
  
        // Inserting the elements into the Queue
        myQueue.Enqueue("C");
        myQueue.Enqueue("C++");
        myQueue.Enqueue("Java");
        myQueue.Enqueue("C#");
        myQueue.Enqueue("HTML");
        myQueue.Enqueue("CSS");
  
        // Creates a synchronized
        // wrapper around the Queue
        Queue sq = Queue.Synchronized(myQueue);
  
        // Displays the synchronization
        // status of both Queue
        Console.WriteLine("myQueue is {0}.", myQueue.IsSynchronized ?
                                "Synchronized" : "Not Synchronized");
  
        Console.WriteLine("sq is {0}.", sq.IsSynchronized ? 
                       "Synchronized" : "Not Synchronized");
    }
}
Producción:

myQueue is Not Synchronized.
sq is Synchronized.

Ejemplo 2:

// C# code to check if Queue
// Is Synchronized or not
using System;
using System.Collections;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a Queue
        Queue myQueue = new Queue();
  
        // Inserting the elements into the Queue
        myQueue.Enqueue(1);
        myQueue.Enqueue(2);
        myQueue.Enqueue(3);
        myQueue.Enqueue(4);
  
        // the default is false for
        // IsSynchronized property
        Console.WriteLine(myQueue.IsSynchronized);
    }
}
Producción:

False

Nota:

  • Recuperar el valor de esta propiedad es una operación O(1).
  • Para garantizar la seguridad de subprocesos de la cola, todas las operaciones deben realizarse a través del contenedor devuelto por el método sincronizado.
  • Enumerar a través de una colección no es intrínsecamente un procedimiento seguro para subprocesos. Incluso cuando una colección está sincronizada, otros subprocesos aún pueden modificar la colección, lo que hace que el enumerador arroje una excepción.

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 *