C# | Check if Hashtable is synchronized (thread safe) (original) (raw)

Last Updated : 01 Feb, 2019

Hashtable.IsSynchronized Property is used to get a value indicating whether access to the **_Hashtable _**is synchronized(thread-safe).Syntax:

public virtual bool IsSynchronized { get; }

Return Value: This property return true if access to the Hashtable is synchronized (thread-safe), otherwise it returns false. The default is false. Below programs illustrate the use of above-discussed property:Example 1:

CSharp `

// C# code to check if Hashtable // Is Synchronized or not using System; using System.Collections;

class GFG {

// Driver code
public static void Main()
{

    // create and initialize Hashtable 
    // 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"); 

    // Creates a synchronized
    // wrapper around the Hashtable.
    Hashtable smyTable = Hashtable.Synchronized(has1);

    // Displays the synchronization 
    // status of both Hashtables.
    Console.WriteLine("has1 is {0}.", has1.IsSynchronized ? 
                            "Synchronized" : "Not Synchronized");
                            
    Console.WriteLine("smyTable is {0}.", smyTable.IsSynchronized ?
                              "Synchronized" : "Not Synchronized");
}

}

`

Output:

has1 is Not Synchronized. smyTable is Synchronized.

Example 2:

CSharp `

// C# code to check if Hashtable // Is Synchronized or not using System; using System.Collections;

class GFG {

// Driver code
public static void Main()
{

    // Creating a Hashtable
    Hashtable myTable = new Hashtable();

    // Adding elements in Hashtable
    myTable.Add("G", "Geeks");
    myTable.Add("C", "C#");
    myTable.Add("D", "Data Structures");
    myTable.Add("Q", "Quiz");

    // Checking if Hashtable is
    // synchronized (thread safe)
    Console.WriteLine(myTable.IsSynchronized);
}

}

`

Note: A Hashtable can support one writer and multiple readers concurrently. To support multiple writers, all operations must be done through the wrapper returned by the Synchronized method.Reference: