語言

CollectionBase.ICollection.IsSynchronized 屬性

定義

取得值,指出是否同步存取 CollectionBase (線程安全)。

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若CollectionBase存取 是同步的(執行緒安全);否則, false 預設值為 false。

實作

備註

實 CollectionBase 例並未同步。 衍生類別可以利用該CollectionBase特性提供同步版本SyncRoot。

透過集合列舉本質上不是一個執行緒安全的程序。 即使集合同步處理,其他線程仍然可以修改集合,這會導致列舉值擲回例外狀況。 若要保證列舉期間的線程安全性,您可以在整個列舉期間鎖定集合,或攔截其他線程所做的變更所產生的例外狀況。

以下程式碼範例展示了如何在整個列舉過程中使用 鎖定 SyncRoot 集合:

// Get the ICollection interface from the CollectionBase
// derived class.
ICollection myCollection = myCollectionBase;
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
' Get the ICollection interface from the CollectionBase
' derived class.
Dim myCollection As ICollection = myCollectionBase
SyncLock myCollection.SyncRoot
    For Each item As Object In myCollection
        ' Insert your code here.
    Next item
End SyncLock

取得該屬性的價值是一個 O(1) 操作。

適用於

另請參閱