Stack<T>.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. 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 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.

Şunlara uygulanır

Ayrıca bkz.