語言

NameObjectCollectionBase.ICollection.IsSynchronized 屬性

定義

會取得一個值,表示對物件的存取 NameObjectCollectionBase 是否同步(執行緒安全)。

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

實作

備註

物件 NameObjectCollectionBase 沒有同步。 衍生類別可以利用該NameObjectCollectionBase特性提供同步版本SyncRoot。

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

以下程式碼範例說明如何在整個列舉過程中使用該 SyncRoot 屬性鎖定集合。

// Create a collection derived from NameObjectCollectionBase
ICollection myCollection = new DerivedCollection();
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
' Create a collection derived from NameObjectCollectionBase
Dim myCollection As ICollection = New DerivedCollection()
SyncLock myCollection.SyncRoot
    For Each item As Object In myCollection
        ' Insert your code here.
    Next item
End SyncLock

取得此性質的值為 O(1) 運算。

適用於

另請參閱