Array.IsSynchronized Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera wartość wskazującą, czy dostęp do elementu Array jest synchronizowany (bezpieczny wątek).
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
Wartość właściwości
Ta właściwość jest zawsze false dla wszystkich tablic.
Implementuje
Przykłady
Poniższy przykład kodu pokazuje, jak zablokować tablicę podczas całego wyliczenia przy użyciu SyncRoot właściwości .
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
Uwagi
Array implementuje IsSynchronized właściwość, ponieważ jest wymagana System.Collections.ICollection przez interfejs.
Klasy platformy .NET oparte na Array udostępnianiu własnej zsynchronizowanej wersji kolekcji przy użyciu SyncRoot właściwości .
Klasy korzystające z tablic mogą również implementować własną synchronizację SyncRoot przy użyciu właściwości . Synchronizowanie kodu musi wykonywać operacje na SyncRoot kolekcji, a nie bezpośrednio w kolekcji. Zapewnia to właściwą operację kolekcji, które pochodzą z innych obiektów. W szczególności utrzymuje właściwą synchronizację z innymi wątkami, które mogą być jednocześnie modyfikowane kolekcji. Należy pamiętać, że niektóre implementacje SyncRoot programu mogą zwracać same siebie Array .
Wyliczanie za pośrednictwem kolekcji nie jest wewnętrznie bezpieczną procedurą wątku. Nawet w przypadku synchronizacji kolekcji inne wątki nadal mogą modyfikować kolekcję, co powoduje zgłoszenie wyjątku przez moduł wyliczający. Aby zagwarantować bezpieczeństwo wątków podczas wyliczania, możesz zablokować kolekcję podczas całego wyliczenia lub przechwycić wyjątki wynikające ze zmian wprowadzonych przez inne wątki.
Pobieranie wartości tej właściwości jest operacją O(1).