Array.IsSynchronized Propriété

Définition

Obtient une valeur indiquant si l'accès à Array est synchronisé (thread-safe).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

Valeur de propriété

Cette propriété est toujours false pour tous les tableaux.This property is always false for all arrays.

Implémente

Exemples

L’exemple de code suivant montre comment verrouiller un tableau pendant toute l’énumération à l’aide de la propriété SyncRoot.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

Remarques

Array implémente la propriété IsSynchronized, car elle est requise par l’interface System.Collections.ICollection.Array implements the IsSynchronized property because it is required by the System.Collections.ICollection interface.

.NET Framework classes basées sur Array fournissent leur propre version synchronisée de la collection à l’aide de la propriété SyncRoot..NET Framework classes based on Array provide their own synchronized version of the collection using the SyncRoot property.

Les classes qui utilisent des tableaux peuvent également implémenter leur propre synchronisation à l’aide de la propriété SyncRoot.Classes that use arrays can also implement their own synchronization using the SyncRoot property. Le code de synchronisation doit effectuer des opérations sur le SyncRoot de la collection, et non directement sur la collection.The synchronizing code must perform operations on the SyncRoot of the collection, not directly on the collection. Cela garantit un bon fonctionnement des collections dérivées d’autres objets.This ensures proper operation of collections that are derived from other objects. Plus précisément, il assure une synchronisation correcte avec d’autres threads qui peuvent modifier simultanément la collection.Specifically, it maintains proper synchronization with other threads that might be simultaneously modifying the collection. Notez que certaines implémentations de SyncRoot peuvent retourner le Array lui-même.Note that some implementations of SyncRoot might return the Array itself.

L’énumération d’une collection n’est pas intrinsèquement une procédure thread-safe.Enumerating through a collection is intrinsically not a thread safe procedure. Même lorsqu'une collection est synchronisée, les autres threads peuvent toujours la modifier, ce qui entraîne la levée d'une exception par l'énumérateur.Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. Pour garantir la sécurité des threads au cours de l’énumération, vous pouvez verrouiller la collection pendant l’ensemble de l’énumération ou bien intercepter les exceptions résultant des modifications apportées par les autres threads.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.

La récupération de la valeur de cette propriété est une opération O(1).Retrieving the value of this property is an O(1) operation.

S’applique à

Voir aussi