SortedList.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 SortedList nesne alır.
public:
virtual property System::Object ^ SyncRoot { System::Object ^ get(); };
public virtual object SyncRoot { get; }
member this.SyncRoot : obj
Public Overridable ReadOnly Property SyncRoot As Object
Özellik Değeri
Nesneye erişimi eşitlemek için SortedList kullanılabilecek bir nesne.
Uygulamalar
Örnekler
Aşağıdaki kod örneği, tüm numaralandırma sırasında özelliğini kullanarak koleksiyonu kilitlemeyi SyncRoot gösterir.
SortedList myCollection = new SortedList();
lock (myCollection.SyncRoot)
{
foreach (object item in myCollection)
{
// Insert your code here.
}
}
Dim myCollection As New SortedList()
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
Nesnenin SortedList eşitlenmiş bir sürümünü oluşturmak için yöntemini kullanın Synchronized . Ancak, türetilmiş sınıflar özelliğini kullanarak SyncRoot kendi eşitlenmiş sürümünü SortedList sağlayabilir. Eşitleme kodu üzerinde doğrudan SortedListüzerinde değil üzerinde işlem SyncRootSortedListgerçekleştirmelidir. Bu, diğer nesnelerden türetilen koleksiyonları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 SortedList korur.
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.