SortedDictionary<TKey,TValue>.ValueCollection.ICollection.SyncRoot Proprietà

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 di SortedDictionary<TKey,TValue>.ValueCollection, questa proprietà restituisce sempre l'istanza corrente.In the default implementation of SortedDictionary<TKey,TValue>.ValueCollection, this property always returns the current instance.

Implementazioni

Commenti

Le implementazioni predefinite di raccolte nello spazio dei nomi System.Collections.Generic non sono sincronizzate.Default implementations of collections in the System.Collections.Generic namespace 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.

La proprietà SyncRoot restituisce un oggetto che può essere usato per sincronizzare l'accesso al ICollection.The SyncRoot property returns an object that can be used to synchronize access to the ICollection. La sincronizzazione è efficace solo se tutti i thread bloccano l'oggetto prima di accedere alla raccolta.Synchronization is effective only if all threads lock the object before accessing the collection. Nel codice seguente viene illustrato l'utilizzo della proprietà SyncRoot per 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).Getting the value of this property is an O(1) operation.

Si applica a

Vedi anche