Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Proprietà Stack<T>.ICollection.SyncRoot

 

Data di pubblicazione: ottobre 2016

Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ICollection.

Spazio dei nomi:   System.Collections.Generic
Assembly:  System (in System.dll)

object ICollection.SyncRoot { get; }

Valore proprietà

Type: System.Object

Oggetto che può essere usato per sincronizzare l'accesso a ICollection. Nell'implementazione predefinita di Stack<T>, questa proprietà restituisce sempre l'istanza corrente.

Le implementazioni predefinite di raccolte in System.Collections.Generic non sono sincronizzati.

L'enumerazione di una raccolta non è di per sé una procedura thread-safe. Per assicurare la protezione del thread durante l'enumerazione, è possibile bloccare la raccolta durante l'intera enumerazione. Per consentire l'accesso alla raccolta in lettura e scrittura da parte di più thread, è necessario implementare la propria sincronizzazione.

SyncRoot Restituisce un oggetto che può essere utilizzato per sincronizzare l'accesso alla ICollection. La sincronizzazione è efficace solo se tutti i thread di bloccano questo oggetto prima di accedere alla raccolta. Il codice seguente viene illustrato come utilizzare il SyncRoot proprietà per c#, C++ e Visual Basic.

ICollection ic = ...;
lock (ic.SyncRoot) {
   // Access the collection.
}

Il recupero del valore di questa proprietà è un'operazione O(1).

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: