Aracılığıyla paylaş


DictionaryBase.ICollection.IsSynchronized Özellik

Tanım

Bir nesneye erişimin eşitlenip eşitlenmediğini belirten bir DictionaryBase değer alır (iş parçacığı güvenli).

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

Özellik Değeri

true nesneye DictionaryBase erişim eşitlenmişse (iş parçacığı güvenli); aksi takdirde, false. Varsayılan değer: false.

Uygulamalar

Örnekler

Aşağıdaki kod örneği, tüm numaralandırma sırasında özelliğini kullanarak koleksiyonu kilitlemeyi SyncRoot gösterir.

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

Bu özelliğin değerini almak bir O(1) işlemdir.

Açıklamalar

Nesne DictionaryBase eşitlenmedi. Türetilmiş sınıflar, özelliğini kullanarak SyncRoot sınıfın DictionaryBase eşitlenmiş bir sürümünü sağlayabilir.

Bir koleksiyonda numaralandırma, iş parçacığı açısından güvenli bir yordam değildir. Bir koleksiyon eşitlendiğinde bile, diğer iş parçacıkları yine de koleksiyonu değiştirebilir ve bu da numaralandırıcının bir özel durum oluşturmasına neden olur. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilir veya diğer iş parçacıkları tarafından yapılan değişikliklerden kaynaklanan özel durumları yakalayabilirsiniz.

Şunlara uygulanır

Ayrıca bkz.