El método Hashtable.Synchronized(Hashtable) se usa para devolver un contenedor sincronizado (seguro para subprocesos) para Hashtable .
Sintaxis:
System.Collections.Hashtable público estático sincronizado (tabla System.Collections.Hashtable);
Aquí la tabla es la Hashtable que se sincronizará.
Valor de retorno: este método devuelve un contenedor sincronizado (seguro para subprocesos) para Hashtable.
Excepción: este método generará ArgumentNullException si la tabla es nula.
Los siguientes programas ilustran el uso del método mencionado anteriormente:
Ejemplo 1:
CSharp
// C# code to get a synchronized (thread- // safe) wrapper for the Hashtable using System; using System.Collections; class GFG { // Main method static void Main(string[] args) { // create and initialize Hash table // using Add() method Hashtable has1 = new Hashtable(); has1.Add("1", "Welcome"); has1.Add("2", "to"); has1.Add("3", "geeks"); has1.Add("4", "for"); has1.Add("5", "geeks"); // Creating a synchronized packing // around the Hashtable Hashtable has2 = Hashtable.Synchronized(has1); // --------- Using IsSynchronized Property // print the status of both Hashtables Console.WriteLine("has1 Hashtable is {0}.", has1.IsSynchronized ? "synchronized" : "not synchronized"); Console.WriteLine("has2 Hashtable is {0}.", has2.IsSynchronized ? "synchronized" : "not synchronized"); } }
Producción:
has1 Hashtable is not synchronized. has2 Hashtable is synchronized.
Ejemplo 2:
CSharp
// C# code to get a synchronized (thread- // safe) wrapper for the Hashtable using System; using System.Collections; class GFG { // Main method static void Main(string[] args) { // create and initialize Hash table // there will be no elements Hashtable has1 = new Hashtable(); // it will give runtime error as // table parameter can't be null Hashtable has2 = Hashtable.Synchronized(null); } }
Error de tiempo de ejecución:
Excepción no controlada:
System.ArgumentNullException: el valor no puede ser nulo.
Nombre del parámetro: tabla
Nota:
- Este método es seguro para subprocesos para múltiples lectores y escritores. Además, el envoltorio sincronizado garantiza que solo haya un escritor escribiendo a la vez.
- Enumerar a través de una colección no es intrínsecamente un proceso seguro para subprocesos. Otros subprocesos aún pueden modificar la colección, lo que hace que el enumerador arroje una excepción incluso cuando una colección está sincronizada.
- 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.
- Este método 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