SyncRoot, propriété
Réduire la table des matières
Développer la table des matières

ControlCollection.SyncRoot, propriété

Mise à jour : novembre 2007

Obtient un objet qui peut être utilisé pour synchroniser l'accès à la collection de contrôles.

Espace de noms :  System.Web.UI
Assembly :  System.Web (dans System.Web.dll)

public Object SyncRoot { get; }
/** @property */
public final Object get_SyncRoot()

public final function get SyncRoot () : Object

Valeur de propriété

Type : System.Object

Object utilisé pour synchroniser la collection.

Implémentations

ICollection.SyncRoot

L'exemple de code suivant crée une méthode qui énumère la collection ControlCollection d'un contrôle Button, myButton. Une fois l'énumérateur créé, le code vérifie la propriété IsSynchronized pour déterminer si l'opération est thread-safe. Si tel n'est pas le cas, il utilise la propriété SyncRoot pour obtenir un objet permettant de rendre l'opération thread-safe. Une fois l'énumération terminée, il écrit la valeur de la propriété IsReadOnly en tant que propriété Text d'un contrôle Label dans la page conteneur.

// Create a method that enuberates through a 
// button//s ControlCollection in a thread-safe manner.  
public void ListControlCollection(object sender, EventArgs e)
{
   IEnumerator myEnumerator = myButton.Controls.GetEnumerator();

   // Check the IsSynchronized property. If False,
   // use the SyncRoot method to get an object that 
   // allows the enumeration of all controls to be 
   // thread safe.
   if (myButton.Controls.IsSynchronized == false)
   {
       lock (myButton.Controls.SyncRoot)
       {
           while (myEnumerator.MoveNext())
           {

               Object myObject = myEnumerator.Current;

               LiteralControl childControl = (LiteralControl)myEnumerator.Current;
               Response.Write("<b><br /> This is the  text of the child Control  </b>: " +
                              childControl.Text);
           }
           msgReadOnly.Text = myButton.Controls.IsReadOnly.ToString();
       }
   }       
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2016 Microsoft