C#中ArrayList的同步
在C#中使用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"); //在ArrayList周围设置同步包装 ArrayList arr2 = ArrayList.Synchronized(arr1); //第一个ArrayList的同步状态 Console.WriteLine("arr1 = {0}", arr1.IsSynchronized ? " synchronized" : "not synchronized"); //第二个ArrayList的同步状态 Console.WriteLine("arr2 = {0}", arr2.IsSynchronized ? "synchronized" : "not synchronized"); } }
输出结果
arr1 = not synchronized arr2 = synchronized