Array.SyncRoot Ö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şimi Arrayeşitlemek için kullanılabilecek bir nesnesi alır.
public:
property System::Object ^ SyncRoot { System::Object ^ get(); };
public:
virtual property System::Object ^ SyncRoot { System::Object ^ get(); };
public object SyncRoot { get; }
public virtual object SyncRoot { get; }
member this.SyncRoot : obj
Public ReadOnly Property SyncRoot As Object
Public Overridable ReadOnly Property SyncRoot As Object
Özellik Değeri
erişimi Arrayeşitlemek için kullanılabilecek bir nesne.
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
Bu özellik arabirimini System.Collections.ICollection 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.