Array.IsSynchronized Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob der Zugriff auf Array synchronisiert (threadsicher) ist.Gets a value indicating whether access to the Array is synchronized (thread safe).

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 ist für alle Arrays immer false.This property is always false for all arrays.

Implementiert

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie ein Array während der gesamten Enumeration mithilfe der SyncRoot-Eigenschaft gesperrt wird.The following code example shows how to lock an array during the entire enumeration by using the SyncRoot property.

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);
}
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 für die System.Collections.ICollection-Schnittstelle erforderlich ist.Array implements the IsSynchronized property because it is required by the System.Collections.ICollection interface.

.NET Framework-Klassen basierend auf Array Geben Sie ihre eigene synchronisierte Version der Auflistung mithilfe der SyncRoot Eigenschaft..NET Framework classes based on Array provide their own synchronized version of the collection using the SyncRoot property.

Klassen, die Arrays verwenden, können mit der SyncRoot-Eigenschaft auch eine eigene Synchronisierung implementieren.Classes that use arrays can also implement their own synchronization using the SyncRoot property. Der Synchronisierungs Code muss Vorgänge für die SyncRoot der Auflistung ausführen, nicht direkt für die Auflistung.The synchronizing code must perform operations on the SyncRoot of the collection, not directly on the collection. Dies gewährleistet die einwandfreie Funktion von Auflistungen, die von anderen Objekten abgeleitet sind.This ensures proper operation of collections that are derived from other objects. Insbesondere wird die ordnungsgemäße Synchronisierung mit anderen Threads verwaltet, die die Auflistung möglicherweise gleichzeitig ändern.Specifically, it maintains proper synchronization with other threads that might be simultaneously modifying the collection. Beachten Sie, dass einige Implementierungen von SyncRoot möglicherweise die Array selbst zurückgeben.Note that some implementations of SyncRoot might return the Array itself.

Das Auflisten durch eine Auflistung ist intrinsisch keine Thread sichere Prozedur.Enumerating through a collection is intrinsically not a thread safe procedure. Selbst wenn eine Auflistung synchronisiert wird, besteht die Möglichkeit, dass andere Threads sie ändern. Dies führt dazu, dass der Enumerator eine Ausnahme auslöst.Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. Um während der Enumeration Threadsicherheit zu gewährleisten, können Sie entweder die Auflistung während der gesamten Enumeration sperren oder die Ausnahmen, die aus von anderen Threads stammenden Änderungen resultieren, abfangen.To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

Das Abrufen des Werts dieser Eigenschaft ist ein O(1)-Vorgang.Retrieving the value of this property is an O(1) operation.

Gilt für:

Siehe auch