Array.IsSynchronized Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob der Zugriff auf die Array Synchronisierung (Threadsicher) erfolgt.
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
Eigenschaftswert
Diese Eigenschaft gilt immer false für alle Arrays.
Implementiert
Beispiele
Im folgenden Codebeispiel wird gezeigt, wie Sie ein Array während der gesamten Enumeration mithilfe der SyncRoot Eigenschaft sperren.
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
Hinweise
Array implementiert die IsSynchronized Eigenschaft, da sie von der System.Collections.ICollection Schnittstelle benötigt wird.
.NET-Klassen basierend auf der Array Bereitstellung ihrer eigenen synchronisierten Version der Auflistung mithilfe der SyncRoot Eigenschaft.
Klassen, die Arrays verwenden, können auch ihre eigene Synchronisierung mithilfe der SyncRoot Eigenschaft implementieren. Der Synchronisierungscode muss Vorgänge für die SyncRoot Auflistung ausführen, nicht direkt für die Auflistung. Dadurch wird der ordnungsgemäße Betrieb von Auflistungen sichergestellt, die von anderen Objekten abgeleitet werden. Insbesondere wird die ordnungsgemäße Synchronisierung mit anderen Threads beibehalten, die möglicherweise gleichzeitig die Sammlung ändern. Beachten Sie, dass einige Implementierungen möglicherweise SyncRoot den Array selbst zurückgeben.
Das Aufzählen durch eine Sammlung ist in der Regel keine threadsichere Prozedur. Selbst wenn eine Auflistung synchronisiert wird, können andere Threads die Auflistung weiterhin ändern, wodurch der Enumerator eine Ausnahme auslöst. Um die Threadsicherheit während der Enumeration zu gewährleisten, können Sie die Auflistung entweder während der gesamten Enumeration sperren oder die Ausnahmen erfassen, die sich aus Änderungen ergeben, die von anderen Threads vorgenommen wurden.
Das Abrufen des Werts dieser Eigenschaft ist ein O(1)-Vorgang.