Compartir a través de


DTSReadOnlyCollectionBase.SyncRoot Propiedad

Definición

Obtiene un objeto que se puede usar para sincronizar el acceso a DTSReadOnlyCollectionBase.

public:
 property System::Object ^ SyncRoot { System::Object ^ get(); };
public object SyncRoot { get; }
member this.SyncRoot : obj
Public ReadOnly Property SyncRoot As Object

Valor de propiedad

Un objeto que se puede usar para sincronizar el acceso a la clase DTSReadOnlyCollectionBase.

Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo bloquear una ArrayList colección mediante durante SyncRoot la enumeración .

using System;  
using System.Collections;  

ArrayList myCollection = new ArrayList();  
lock( myCollection.SyncRoot )   
foreach ( Object item in myCollection )   
{  
    // Insert your code here.  
}  
Imports System  
Imports System.Collections  

Dim myCollection As ArrayList =  New ArrayList()   

lock(myCollection.SyncRoot)  
For Each item In myCollection  
    ' Insert your code here.  
Next  

Comentarios

Implementa ICollection.IsSynchronized. Si va a crear una colección personalizada y derivar de DTSReadOnlyCollectionBase, puede proporcionar su propia versión sincronizada de la colección mediante la SyncRoot propiedad . El código de sincronización debe realizar operaciones en de la SyncRoot colección, no directamente en la colección. De este modo, se garantiza el funcionamiento correcto de las colecciones derivadas de otros objetos. En concreto, mantiene la sincronización adecuada con otros subprocesos que podrían modificar simultáneamente el objeto.

Enumerar una colección no es intrínsecamente un procedimiento seguro para subprocesos. Incluso cuando se sincroniza una colección, otros subprocesos podrían seguir modificando la colección, lo que hace que el enumerador produzca una excepción. Con el fin de garantizar la seguridad para la ejecución de subprocesos durante la enumeración, se puede bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos. Para obtener más información, vea ICollection.IsSynchronized.

Se aplica a