DictionaryBase.ICollection.SyncRoot Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir nesneye erişimi eşitlemek için kullanılabilecek bir DictionaryBase nesne alır.
property System::Object ^ System::Collections::ICollection::SyncRoot { System::Object ^ get(); };
object System.Collections.ICollection.SyncRoot { get; }
member this.System.Collections.ICollection.SyncRoot : obj
ReadOnly Property SyncRoot As Object Implements ICollection.SyncRoot
Özellik Değeri
Nesneye erişimi DictionaryBase eşitlemek için kullanılabilecek bir nesne.
Uygulamalar
Örnekler
Aşağıdaki kod örneği, tüm numaralandırma sırasında özelliğini kullanarak SyncRoot koleksiyonun nasıl kilitlenmesini gösterir.
ICollection^ myCollection = gcnew ShortStringDictionary();
bool lockTaken = false;
try
{
Monitor::Enter(myCollection->SyncRoot, lockTaken);
for each (Object^ item in myCollection);
{
// Insert your code here.
}
}
finally
{
if (lockTaken)
{
Monitor::Exit(myCollection->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
Bu özelliğin değerini almak bir O(1)
işlemdir.
Açıklamalar
Türetilmiş sınıflar, özelliğini kullanarak SyncRoot sınıfın DictionaryBase kendi eşitlenmiş sürümlerini sağlayabilir. Eşitleme kodu, doğrudan nesne üzerinde SyncRoot değil, nesnenin DictionaryBase özelliği üzerinde DictionaryBase işlemler gerçekleştirmelidir. Bu, diğer nesnelerden türetilen toplulukların düzgün çalışmasını sağlar. Özellikle, nesneyi aynı anda değiştirebilecek diğer iş parçacıklarıyla düzgün eşitlemeyi DictionaryBase sürdürür.
Bir koleksiyon ile numaralandırma, aslında iş parçacığı açısından güvenli yordam değildir. Bir koleksiyon eşitlendiği zaman bile, diğer iş parçacıkları numaralandırıcının özel durum oluşturmasına neden olan koleksiyonu değiştirebilir. Numaralandırma sırasında iş parçacığı güvenliği sağlamak 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.