要获得对StringCollection的同步访问,代码如下-
using System; using System.Collections.Specialized; public class Demo { public static void Main() { StringCollection stringCol = new StringCollection(); String[] arr = new String[] { "100", "200", "300", "400", "500" }; Console.WriteLine("数组元素..."); foreach (string res in arr) { Console.WriteLine(res); } stringCol.AddRange(arr); Console.WriteLine("元素总数 = "+stringCol.Count); stringCol.RemoveAt(3); Console.WriteLine("现在的元素总数 = "+stringCol.Count); Console.WriteLine("Synchronize access..."); lock(stringCol.SyncRoot) { foreach(object ob in stringCol) { Console.WriteLine(ob); } } } }
输出结果
这将产生以下输出-
数组元素... 100 200 300 400 500 元素总数 = 5 现在的元素总数 = 4 Synchronize access... 100 200 300 500
让我们看另一个例子-
using System; using System.Collections.Specialized; public class Demo { public static void Main() { StringCollection strCol = new StringCollection(); strCol.Add("Katie"); strCol.Add("Philips"); strCol.Add("Jacob"); strCol.Add("Carl"); strCol.Add("Gary"); Console.WriteLine("Synchronize access..."); lock(strCol.SyncRoot) { foreach(object ob in strCol) { Console.WriteLine(ob); } } } }
输出结果
这将产生以下输出-
Synchronize access... Katie Philips Jacob Carl Gary