Stack<T>.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.
ICollectionerişimini eşitlemek için kullanılabilecek bir nesnesi 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
erişimi ICollectioneşitlemek için kullanılabilecek bir nesne. varsayılan uygulamasında Stack<T>bu özellik her zaman geçerli örneği döndürür.
Uygulamalar
Açıklamalar
içindeki System.Collections.Generic koleksiyonların varsayılan uygulamaları eşitlenmez.
Bir koleksiyonda numaralandırma, iş parçacığı açısından güvenli bir yordam değildir. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilirsiniz. Koleksiyona okuma ve yazma için birden çok iş parçacığı tarafından erişilmesine izin vermek için kendi eşitlemenizi uygulamanız gerekir.
SyncRoot , erişimi ICollectioneşitlemek için kullanılabilecek bir nesne döndürür. Eşitleme yalnızca koleksiyona erişmeden önce tüm iş parçacıklarının bu nesneyi kilitlemesi durumunda geçerlidir. Aşağıdaki kod özelliğinin SyncRoot kullanımını gösterir.
ICollection ic = ...;
lock (ic.SyncRoot) {
// Access the collection.
}
Dim ic As ICollection = ...
SyncLock ic.SyncRoot
' Access the collection.
End SyncLock
Bu özelliğin değerini almak bir O(1) işlemidir.