Array.IsSynchronized Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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.