(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Array.IsSynchronized-Eigenschaft

Ruft einen Wert ab, der angibt, ob der Zugriff auf Array synchronisiert (threadsicher) ist.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public bool IsSynchronized { get; }

Eigenschaftswert

Typ: System.Boolean
Diese Eigenschaft ist für alle Arrays immer false.

Implementiert

ICollection.IsSynchronized

Array implementiert die IsSynchronized-Eigenschaft, da sie von der System.Collections.ICollection-Schnittstelle benötigt wird.

Auf Array basierende .NET Framework-Klassen stellen über die SyncRoot-Eigenschaft eine eigene synchronisierte Version der Auflistung bereit.

Klassen, die Arrays verwenden, können mithilfe der SyncRoot-Eigenschaft auch eine eigene Synchronisierung implementieren. Im Synchronisierungscode dürfen Operationen nicht direkt für die Auflistung durchgeführt werden, sondern müssen über SyncRoot der Auflistung erfolgen. Dies gewährleistet die einwandfreie Funktion von Auflistungen, die von anderen Objekten abgeleitet sind. Insbesondere wird die ordnungsgemäße Synchronisierung mit anderen Threads gewährleistet, die eventuell zur gleichen Zeit Änderungen an der Auflistung vornehmen. Beachten Sie, dass einige Implementierungen von SyncRoot das Array selbst zurückgeben können.

Die Enumeration einer Auflistung ist systemintern keine threadsichere Prozedur. 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. Sie können während der Enumeration Threadsicherheit gewährleisten, indem Sie entweder die Auflistung während der gesamten Enumeration sperren oder die Ausnahmen abfangen, die durch Änderungen ausgelöst werden, die von anderen Threads vorgenommen werden.

Das Abrufen des Wertes dieser Eigenschaft ist ein O(1)-Vorgang.

Im folgenden Codebeispiel wird veranschaulicht, wie ein Array mithilfe der SyncRoot-Eigenschaft während der gesamten Enumeration gesperrt wird.


Array myArray = new int[] { 1, 2, 4 };
lock(myArray.SyncRoot) 
{
    foreach (Object item in myArray)
        Console.WriteLine(item);
}


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft