List<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.
erişimi ICollectioneş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 List<T>bu özellik her zaman geçerli örneği döndürür.
Uygulamalar
Açıklamalar
Ad alanında System.Collections.Generic koleksiyonların varsayılan uygulamaları eşitlenmez.
Bir koleksiyon ile numaralandırma, aslında iş parçacığı açısından güvenli yordam değildir. Numaralandırma sırasında iş parçacığı güvenliği sağlamak için tüm numaralandırma sırasında koleksiyonu kilitleyebilirsiniz. Okuma ve yazma için birden çok iş parçacığı tarafından erişilecek koleksiyona izin vermek için kendi eşitlemenizi uygulamalısınız.
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 C#, C++ ve Visual Basic için ö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
ICollection^ ic = ...;
try
{
Monitor::Enter(ic->SyncRoot);
// Access the collection.
}
finally
{
Monitor::Exit(ic->SyncRoot);
}
Bu özelliğin değerini almak bir O(1) işlemidir.