C# | Comprobar si una array está sincronizada (seguro para subprocesos) o no

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

Sintaxis:

public bool IsSynchronized { get; }

Valor de propiedad: esta propiedad siempre devuelve falso para todas las arrays.

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

Ejemplo 1:

// C# program to illustrate
// IsSynchronized Property of
// Array class
using System;
namespace geeksforgeeks {
  
class GFG {
  
    // Main Method
    public static void Main()
    {
  
        // The array with dimensions  
        // specified 4 row and 2 column. 
        int[, ] arr = new int[4, 2] {{1, 2 }, {3, 4},  
                                            {5, 6 }, {7, 8}};
  
        // Here we check whether the
        // array is synchronized (thread safe)
        // or not
        Console.WriteLine("Result: " + arr.IsSynchronized);
    }
}
}
Producción:

Result: False

Ejemplo 2:

// C# program to illustrate
// IsSynchronized Property of
// Array class
using System;
namespace geeksforgeeks {
  
class GFG {
  
    // Main Method
    public static void Main()
    {
  
        // declares an 1D Array of string.
        string[] topic;
  
        // allocating null to array
        topic = new string[] { null };
  
        // Here we check whether the
        // array is synchronized (thread safe)
        // or not
        Console.WriteLine("Result: " + topic.IsSynchronized);
    }
}
}
Producción:

Result: False

Nota:

  • Array implementa la propiedad IsSynchronized porque la interfaz System.Collections.ICollection la necesita.
  • Las clases que usan las arrays también pueden implementar su propia sincronización usando la propiedad SyncRoot.
  • Enumerar a través de una colección no es 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. Para garantizar la seguridad de los 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.
  • Recuperar el valor de esta propiedad es una operación O(1).

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 *