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

Tanım

Erişimini eşitlemede kullanılabilecek bir nesne alır ICollection .Gets an object that can be used to synchronize access to the ICollection.

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

Object

Erişimini eşitlemede kullanılabilecek bir nesne ICollection .An object that can be used to synchronize access to the ICollection.

Uygulamalar

Açıklamalar

Ad alanındaki koleksiyonların varsayılan uygulamaları System.Collections.Generic eşitlenmez.Default implementations of collections in the System.Collections.Generic namespace are not synchronized.

Bir koleksiyon ile numaralandırma, aslında iş parçacığı açısından güvenli yordam değildir.Enumerating through a collection is intrinsically not a thread-safe procedure. Numaralandırma sırasında iş parçacığı güvenliği sağlamak için tüm numaralandırma sırasında koleksiyonu kilitleyebilirsiniz.To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. 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.To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.

SyncRootÖzelliği, erişimi eşitlemede kullanılabilecek bir nesne döndürür ICollection .The SyncRoot property returns an object that can be used to synchronize access to the ICollection. Eşitleme yalnızca tüm iş parçacıkları koleksiyona erişmeden önce nesneyi kilitlemezse geçerlidir.Synchronization is effective only if all threads lock the object before accessing the collection. Aşağıdaki kod SyncRoot C#, C++ ve Visual Basic özelliğinin kullanımını gösterir.The following code shows the use of the SyncRoot property for C#, C++, and Visual Basic.

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ğerinin alınması bir O (1) işlemidir.Getting the value of this property is an O(1) operation.

Şunlara uygulanır

Ayrıca bkz.