Array.IsSynchronized Özellik

Tanım

erişimin Array eşitlenip eşitlenmediğini belirten bir değer alır (iş parçacığı güvenli).

public:
 property bool IsSynchronized { bool get(); };
public:
 virtual property bool IsSynchronized { bool get(); };
public bool IsSynchronized { get; }
public virtual bool IsSynchronized { get; }
member this.IsSynchronized : bool
Public ReadOnly Property IsSynchronized As Boolean
Public Overridable ReadOnly Property IsSynchronized As Boolean

Özellik Değeri

Boolean

Bu özellik her zaman false tüm diziler içindir.

Uygulamalar

Örnekler

Aşağıdaki kod örneği, özelliğini kullanarak tüm numaralandırma sırasında bir diziyi kilitlemeyi SyncRoot gösterir.

Array^ myArray = gcnew array<Int32> { 1, 2, 4 };
try
{
    Monitor::Enter(myArray->SyncRoot); 
        
    for each (Int32 item in myArray)
        Console::WriteLine(item);
}
finally
{
    Monitor::Exit(myArray->SyncRoot);
}
Array myArray = new int[] { 1, 2, 4 };
lock(myArray.SyncRoot)
{
    foreach (Object item in myArray)
        Console.WriteLine(item);
}
let myArray = [| 1; 2; 4|]
lock myArray.SyncRoot (fun () ->
    for item in myArray do
        printfn $"{item}" )
Dim myArray As Array = New Integer() { 1, 2, 4 }
SyncLock(myArray.SyncRoot) 
    For Each item As Object In myArray
        Console.WriteLine(item)
    Next
End SyncLock

Açıklamalar

Array arabirimi tarafından IsSynchronized System.Collections.ICollection gerekli olduğundan özelliğini uygular.

tabanlı Array .NET sınıfları, özelliğini kullanarak SyncRoot koleksiyonun kendi eşitlenmiş sürümlerini sağlar.

Dizileri kullanan sınıflar, özelliğini kullanarak SyncRoot kendi eşitlemelerini de uygulayabilir. Eşitleme kodu, doğrudan koleksiyon üzerinde SyncRoot değil, koleksiyonun üzerinde işlemler gerçekleştirmelidir. Bu, diğer nesnelerden türetilen toplulukların düzgün çalışmasını sağlar. Özellikle, koleksiyonu aynı anda değiştirebilecek diğer iş parçacıklarıyla düzgün eşitlemeyi sürdürür. bazı uygulamalarının SyncRoot kendisini döndürebileceğini Array unutmayın.

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.

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

Şunlara uygulanır

Ayrıca bkz.