Array.SyncRoot Tulajdonság

Definíció

Lekéri az objektumot, amely a hozzáférés szinkronizálására használható.Array

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

Tulajdonság értéke

Olyan objektum, amely a hozzáférés szinkronizálására használható.Array

Megvalósítás

Példák

Az alábbi példakód bemutatja, hogyan zárolhat tömböt a teljes számbavétel során a SyncRoot tulajdonság használatával.

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

Megjegyzések

Ez a tulajdonság implementálja az interfészt System.Collections.ICollection .

.NET Array alapuló osztályok a gyűjtemény saját szinkronizált verzióját biztosítják a SyncRoot tulajdonság használatával.

A tömböket használó osztályok saját szinkronizálást is megvalósíthatnak a SyncRoot tulajdonság használatával. A szinkronizálási kódnak nem közvetlenül a gyűjteményen, hanem a SyncRoot gyűjteményen kell műveleteket végrehajtania. Ez biztosítja a más objektumokból származó gyűjtemények megfelelő működését. Pontosabban fenntartja a megfelelő szinkronizálást más szálakkal, amelyek egyidejűleg módosíthatják a gyűjteményt. Vegye figyelembe, hogy egyes implementációk SyncRoot maguk is Array visszatérhetnek.

A gyűjteményen keresztüli számbavétel alapvetően nem szálbiztos eljárás. A gyűjtemény szinkronizálása esetén is más szálak módosíthatják a gyűjteményt, ami miatt az enumerátor kivételt okoz. Az enumerálás során a szálbiztonság garantálása érdekében zárolhatja a gyűjteményt a teljes enumerálás során, vagy elkaphatja a más szálak által végrehajtott módosításokból eredő kivételeket.

A tulajdonság értékének beolvasása O(1) művelet.

A következőre érvényes:

Lásd még