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

更新於: 2020 年 6 月 22 日

236 次瀏覽

啟動你的 職業生涯

完成課程,獲取認證

開始
廣告