C# | Creating a synchronized (thread-safe) wrapper for the Hashtable Last Updated : 09 Aug, 2021 Comments Improve Suggest changes Like Article Like Report Hashtable.Synchronized(Hashtable) Method is used to return a synchronized (thread-safe) wrapper for the Hashtable.Syntax: public static System.Collections.Hashtable Synchronized (System.Collections.Hashtable table); Here table is the Hashtable which is to be synchronized.Return Value: This method returns a synchronized (thread-safe) wrapper for the Hashtable.Exception: This method will throw the ArgumentNullException if the table is null. Below programs illustrate the use of above-discussed method:Example 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"); } } Output: has1 Hashtable is not synchronized. has2 Hashtable is synchronized. Example 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); } } Runtime Error: Unhandled Exception: System.ArgumentNullException: Value cannot be null. Parameter name: table Note: This method is a thread-safe for multiple readers and writers. Furthermore, the synchronized wrapper ensures that there is only one writer writing at a time.Enumerating through a collection is intrinsically not a thread-safe process. Other threads can still modify the collection, which causes the enumerator to throw an exception even when a collection is synchronized.To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.This method is an O(1) operation. Reference: https://docs.microsoft.com/en-us/dotnet/api/system.collections.hashtable.synchronized?view=netframework-4.7.2 Comment More infoAdvertise with us Next Article C# | Creating a synchronized (thread-safe) wrapper for the Hashtable K Kirti_Mangal Follow Improve Article Tags : C# CSharp-method CSharp-Collections-Hashtable CSharp-Collections-Namespace Similar Reads C# | Creating a synchronized (thread-safe) wrapper for the ArrayList Synchronized(ArrayList) method is used to get an ArrayList wrapper that is synchronized (thread safe). Syntax: public static System.Collections.ArrayList Synchronized (System.Collections.ArrayList list); Here, the list is the ArrayList which is to be synchronized. Return Value: It returns an ArrayLi 2 min read C# | Creating a synchronized (thread-safe) wrapper for a SortedList object SortedList.Synchronized(SortedList) Method is used to get the synchronized (thread-safe) wrapper for a SortedList object. Syntax: public static System.Collections.SortedList Synchronized (System.Collections.SortedList list); Here, list is the name of the SortedList object which is to be synchronized 2 min read C# | Check if Hashtable is synchronized (thread safe) 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 2 min read C# | Check if the BitArray is synchronized (thread safe) The BitArray class manages a compact array of bit values, which are represented as Booleans, where true indicates that the bit is on i.e, 1 and false indicates the bit is off i.e, 0. This class is contained in System.Collections namespace. BitArray.IsSynchronized property is used to get a value indi 2 min read C# | Check if ArrayList is Synchronized (thread safe) ArrayList.IsSynchronized Property is used to get a value which indicate whether access to the ArrayList is synchronized (thread safe). Syntax: public virtual bool IsSynchronized { get; } Return Value: This property returns the true if access to the ArrayList is synchronized (thread safe) otherwise i 2 min read Like