Hashtable.IsSynchronized属性用于获取一个值,该值指示对Hashtable的访问是否同步(线程安全)。
句法:
public virtual bool IsSynchronized { get; }
返回值:如果对Hashtable的访问已同步(线程安全),则此属性返回true ,否则返回false 。默认值为false 。
下面的程序说明了上面讨论的属性的用法:
范例1:
// 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");
}
}
输出:
has1 is Not Synchronized.
smyTable is Synchronized.
范例2:
// 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);
}
}
输出:
False
注意:哈希表可以同时支持一个作者和多个读者。为了支持多个编写器,所有操作必须通过Synchronized方法返回的包装器完成。
参考:
- https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.hashtable.issynchronized?view=netframework-4.7.2