C# 中 array 類的 Array.SyncRoot 屬性的作用是什麼?


Array.SyncRoot 屬性用於獲取一個物件,該物件可用於同步對 Array 的訪問。具有陣列的類還可以使用 SyncRoot 屬性來實現自己的同步。

列舉集合不是執行緒安全的過程。即使集合已同步,其他執行緒也可能會修改集合。這最終會導致列舉器丟擲異常。為此,你需要鎖定集合。

讓我們看一個使用 Array.SyncRoot 屬性的示例 −

示例

 線上示例

using System;
using System.Collections.Generic;
using System.Linq;

class Program {
   static void Main() {
      Array arr = new int[] { 23, 11, 32, 18, 87 };
      lock(arr.SyncRoot) {
         foreach (Object val in arr)
         Console.WriteLine(val);
      }
   }
}

輸出

23
11
32
18
87

上面,我們在陣列上設定了一個鎖 −

lock(arr.SyncRoot)

更新日期:2020 年 6 月 20 日

282 次瀏覽

開啟您的職業

完成課程即可獲得認證

開始
廣告
© . All rights reserved.