Dictionary<TKey,TValue>.ICollection.SyncRoot Özellik

Tanım

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.

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.

özelliği, SyncRoot öğesine erişimi ICollectioneşitlemek için kullanılabilecek bir nesne döndürür. Eşitleme yalnızca tüm iş parçacıklarının koleksiyona erişmeden önce 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.

Şunlara uygulanır

Ayrıca bkz.