C# | Check if ArrayList is Synchronized (thread safe)
Last Updated :
01 Feb, 2019
Improve
ArrayList.IsSynchronized Property is used to get a value which indicate whether access to the ArrayList is synchronized (thread safe).
Syntax:
CSharp
CSharp
public virtual bool IsSynchronized { get; }Return Value: This property returns the true if access to the ArrayList is synchronized (thread safe) otherwise it returns false. The default is false. Below programs illustrate the use of above-discussed property: Example 1:
// C# code to check if ArrayList
// Is Synchronized or not
using System;
using System.Collections;
class GFG {
// Driver code
public static void Main()
{
// Creating an ArrayList
ArrayList myList = new ArrayList();
// Adding elements to ArrayList
myList.Add("A");
myList.Add("B");
myList.Add("C");
myList.Add("D");
myList.Add("E");
myList.Add("F");
// Creates a synchronized
// wrapper around the ArrayList
ArrayList smyList = ArrayList.Synchronized(myList);
// Displays the synchronization
// status of both ArrayList
Console.WriteLine("myList is {0}.", myList.IsSynchronized ?
"Synchronized" : "Not Synchronized");
Console.WriteLine("smyList is {0}.", smyList.IsSynchronized ?
"Synchronized" : "Not Synchronized");
}
}
Output:
Example 2:
myList is Not Synchronized. smyList is Synchronized.
// C# code to check if ArrayList
// Is Synchronized or not
using System;
using System.Collections;
class GFG {
// Driver code
public static void Main()
{
// Creating an ArrayList
ArrayList myList = new ArrayList();
// Adding elements to ArrayList
myList.Add(1);
myList.Add(2);
myList.Add(3);
myList.Add(4);
myList.Add(5);
myList.Add(5);
// the default is false for
// IsSynchronized property
Console.WriteLine(myList.IsSynchronized);
}
}
Output:
Note:
False
- Retrieving the value of this property is an O(1) operation.
- To guarantee the thread safety of the ArrayList, all operations must be done through the wrapper returned by the Synchronized method.
- Enumerating through a collection is intrinsically not a thread-safe procedure. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception.