C# 中 ArrayList 的同步
使用 ArrayList.Synchronized 方法,可对 C# 中的 ArrayList 进行同步。
以下示例展示了如何使用 C# 中的 SyncRoot 属性对集合进行锁定 −
ArrayList arr = new ArrayList(); lock(arr.SyncRoot) { foreach (object ele in arr) { } }
这是一个完整的示例,用于检查 ArrayList 的同步状态 −
示例
using System; using System.Collections; public class Demo { public static void Main() { ArrayList arr1 = new ArrayList(); arr1.Add("One"); arr1.Add("Two"); arr1.Add("Three"); arr1.Add("Four"); arr1.Add("Five"); arr1.Add("Six"); arr1.Add("Seven"); arr1.Add("Eight"); // set synchronized wrapper around the ArrayList ArrayList arr2 = ArrayList.Synchronized(arr1); // sychronization status of first ArrayList Console.WriteLine("arr1 = {0}", arr1.IsSynchronized ? " synchronized" : "not synchronized"); // sychronization status of second ArrayList Console.WriteLine("arr2 = {0}", arr2.IsSynchronized ? "synchronized" : "not synchronized"); } }
输出
arr1 = not synchronized arr2 = synchronized
广告