LinkedList<T>.ICollection.SyncRoot LinkedList<T>.ICollection.SyncRoot LinkedList<T>.ICollection.SyncRoot Property

Definizione

Ottiene un oggetto che può essere usato per sincronizzare l'accesso a ICollection.Gets an object that can be used to synchronize access to the ICollection.

property System::Object ^ System::Collections::ICollection::SyncRoot { System::Object ^ get(); };
object System.Collections.ICollection.SyncRoot { get; }
 ReadOnly Property SyncRoot As Object Implements ICollection.SyncRoot

Valore della proprietà

Oggetto che può essere usato per sincronizzare l'accesso a ICollection.An object that can be used to synchronize access to the ICollection. Nell'implementazione predefinita dell'oggetto LinkedList<T>, questa proprietà restituisce sempre l'istanza corrente.In the default implementation of LinkedList<T>, this property always returns the current instance.

Implementazioni

Commenti

Le implementazioni predefinite di raccolte in System.Collections.Generic non sono sincronizzati.Default implementations of collections in System.Collections.Generic are not synchronized.

L'enumerazione di una raccolta non è di per sé una procedura thread-safe.Enumerating through a collection is intrinsically not a thread-safe procedure. Per assicurare la protezione del thread durante l'enumerazione, è possibile bloccare la raccolta durante l'intera enumerazione.To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. Per consentire l'accesso alla raccolta in lettura e scrittura da parte di più thread, è necessario implementare la propria sincronizzazione.To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.

SyncRoot Restituisce un oggetto che può essere utilizzato per sincronizzare l'accesso al ICollection.SyncRoot returns an object that can be used to synchronize access to the ICollection. La sincronizzazione è efficace solo se tutti i thread di bloccano questo oggetto prima di accedere alla raccolta.Synchronization is effective only if all threads lock this object before accessing the collection. Il codice seguente viene illustrato come utilizzare il SyncRoot proprietà c#, C++ e Visual Basic.The following code shows the use of the SyncRoot property for C#, C++, and Visual Basic.

ICollection ic = ...;  
lock (ic.SyncRoot) {  
   // Access the collection.  
}  
Dim ic As ICollection = ...  
SyncLock ic.SyncRoot  
   ' Access the collection.  
End SyncLock  
ICollection^ ic = ...;  
try {  
   Monitor::Enter(ic->SyncRoot);  
   // Access the collection.  
}  
finally {  
   Monitor::Exit(ic->SyncRoot);  
}  

Il recupero del valore di questa proprietà è un'operazione O(1).Retrieving the value of this property is an O(1) operation.

Si applica a

Vedi anche