C#中的陣列類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)
廣告
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP