Share via


Queue.SyncRoot Özellik

Tanım

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

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

Özellik Değeri

öğesine erişimi Queueeşitlemek için kullanılabilecek bir nesne.

Uygulamalar

Örnekler

Aşağıdaki kod örneği, tüm numaralandırma sırasında kullanarak SyncRoot koleksiyonun nasıl kilitlenmesini göstermektedir. Bu özelliğin değerini almak bir O(1) işlemdir.

Queue^ myCollection = gcnew Queue();
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);
    }
}
Queue myCollection = new Queue();
lock (myCollection.SyncRoot)
{
    foreach (object item in myCollection)
    {
        // Insert your code here.
    }
}
Dim myCollection As New Queue()
SyncLock myCollection.SyncRoot
    For Each item In myCollection
        ' Insert your code here.
    Next item
End SyncLock

Açıklamalar

öğesinin Queueeşitlenmiş bir sürümünü oluşturmak için yöntemini kullanın Synchronized . Ancak, türetilmiş sınıflar özelliğini kullanarak SyncRoot kendi eşitlenmiş sürümünü Queue sağlayabilir. Eşitleme kodunun doğrudan üzerinde SyncRootQueuedeğil üzerinde işlemleri gerçekleştirmesi Queuegerekir. 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 Queue sürdürür.

Bir koleksiyon ile numaralandırma, aslında iş parçacığı açısından güvenli 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.

Şunlara uygulanır

Ayrıca bkz.