Aracılığıyla paylaş


StringCollection.SyncRoot Özellik

Tanım

erişimi StringCollectioneşitlemek için kullanılabilecek bir nesnesi alır.

public:
 property System::Object ^ SyncRoot { System::Object ^ get(); };
public object SyncRoot { get; }
member this.SyncRoot : obj
Public ReadOnly Property SyncRoot As Object

Özellik Değeri

erişimi StringCollectioneşitlemek için kullanılabilecek bir nesne.

Uygulamalar

Açıklamalar

Türetilmiş sınıflar özelliğini kullanarak SyncRoot kendi eşitlenmiş sürümünü StringCollection sağlayabilir. Eşitleme kodunun doğrudan üzerinde SyncRootStringCollectiondeğil üzerinde işlemleri gerçekleştirmesi StringCollectiongerekir. Bu, diğer nesnelerden türetilen toplulukların düzgün çalışmasını sağlar. Özellikle, nesneyi aynı anda değiştirebilecek diğer iş parçacıklarıyla düzgün eşitlemeyi StringCollection sürdürür.

Bir koleksiyonda numaralandırmak, doğası gereği iş parçacığı güvenli bir yordam değildir. Bir koleksiyon eşitlendiği zaman bile, diğer iş parçacıkları numaralandırıcının özel durum oluşturmasına neden olan koleksiyonu değiştirebilir. Numaralandırma sırasında iş parçacığı güvenliği sağlamak için tüm numaralandırma sırasında koleksiyonu kilitleyebilir veya diğer iş parçacıkları tarafından yapılan değişikliklerden kaynaklanan özel durumları yakalayabilirsiniz.

Aşağıdaki kod örneği, tüm numaralandırma sırasında kullanarak koleksiyonun SyncRoot nasıl kilitlenmesini gösterir:

StringCollection^ myCollection = gcnew StringCollection();
bool lockTaken = false;
try
{
    Monitor::Enter(myCollection->SyncRoot, lockTaken);
    for each (Object^ item in myCollection)
    {
        // Insert your code here.
    }
}
finally
{
    if (lockTaken)
    {
        Monitor::Exit(myCollection->SyncRoot);
    }
}
StringCollection myCollection = new StringCollection();
lock(myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As New StringCollection()
SyncLock myCollection.SyncRoot
    For Each item as Object In myCollection
        ' Insert your code here.
    Next item
End SyncLock

Bu özelliğin değerini almak bir O(1) işlemidir.

Şunlara uygulanır

Ayrıca bkz.