C# |为数组列表创建同步(线程安全)包装器
Synchronized(ArrayList) 方法用于获取一个同步的 ArrayList 包装器(线程安全)。
语法:
公共静态系统。集合。数组列表同步(系统。Collections.ArrayList 列表);
这里列表是要同步的数组列表。
返回值:返回一个同步的数组列表包装器(线程安全)。
异常:如果列表为空,该方法抛出参数为空异常。
以下程序说明了上述方法的使用:
例 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("Geeks");
myList.Add("for");
myList.Add("Geeks");
myList.Add("Noida");
myList.Add("Geeks Classes");
myList.Add("Delhi");
// 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");
}
}
输出:
myList is Not Synchronized.
smyList is Synchronized.
例 2:
// 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("Geeks");
myList.Add("for");
myList.Add("Geeks");
myList.Add("Noida");
myList.Add("Geeks Classes");
myList.Add("Delhi");
// it will give error as
// the parameter is null
ArrayList smyList = ArrayList.Synchronized(null);
}
}
运行时错误:
未处理异常: 系统。ArgumentNullException:值不能为空。 参数名称:列表
注意:为了数组列表的线程安全,所有操作都必须通过这个包装器完成。
参考:
版权属于:月萌API www.moonapi.com,转载请注明出处