DictionaryBase.ICollection.IsSynchronized 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得值,指出對 DictionaryBase 物件的存取是否同步處理 (線程安全)。
property bool System::Collections::ICollection::IsSynchronized { bool get(); };
bool System.Collections.ICollection.IsSynchronized { get; }
member this.System.Collections.ICollection.IsSynchronized : bool
ReadOnly Property IsSynchronized As Boolean Implements ICollection.IsSynchronized
屬性值
true若物件存取DictionaryBase是同步的(執行緒安全);否則, false 預設值為 false。
實作
範例
以下程式碼範例說明如何在整個列舉過程中使用該 SyncRoot 屬性鎖定集合。
ICollection myCollection = new ShortStringDictionary();
lock(myCollection.SyncRoot)
{
foreach (Object item in myCollection)
{
// Insert your code here.
}
}
Dim myCollection As ICollection = New ShortStringDictionary()
SyncLock myCollection.SyncRoot
For Each item In myCollection
' Insert your code here.
Next item
End SyncLock
取得該屬性的價值是一個 O(1) 操作。
備註
物件 DictionaryBase 沒有同步。 衍生類別可利用該DictionaryBase特性提供該類別的同步版本SyncRoot。
透過集合列舉本質上不是安全線程的程式。 即使集合同步處理,其他線程仍然可以修改集合,這會導致列舉值擲回例外狀況。 若要保證列舉期間的線程安全性,您可以在整個列舉期間鎖定集合,或攔截其他線程所做的變更所產生的例外狀況。