Accueil
Articles
Astuces
Vidéos
Actualités
Auteurs
A propos
Contact
S'enregistrer
|
S'identifier
S'identifier
Authentification invalide
N
om d'utilisateur
M
ot de Passe
S
e souvenir de moi la prochaine fois.
S'identifier
Annuler
S'enregistrer
Mot de passe oublié ?
Utilisation d'un proxy : masquer l'appel à Control.Invoke dans les applications Windows Forms multithreads
En utilisant les mécanismes de proxy du remoting, l'appel à la méthode « Invoke » des contrôles Windows Forms dans le cas d'application multithreads p
Par
Michel Perfetti
publié le 24/02/2006 à 08:35, lu 8802 fois, 5 pages
0 commentaire(s)
Tags:
WinForms
1 | Introduction
1 | Introduction
2 | Définition du Proxy
3 | Gestion des méthodes d'un contrôle
4 | Gestion des contrôles fils »
5 | Conclusion
Téléchargez le code source - 88 Kb
Introduction
Dans une application Windows Forms multithreads, lorsque les threads modifient un contrôle de l'application, ils doivent obligatoirement passer par la méthode « Invoke » du contrôle. A chaque modification, il est nécessaire de créer un délégué ce qui alourdit le code.
Tous les contrôles héritent de la classe System.Windows.Forms.Control qui hérite elle-même de la classe MarshalByRefObject. Comme toute instance de MarshalByRefObject peut être appelée via un proxy, nous allons créer un proxy pour cacher l'appel à la méthode Invoke pour le Contrôle. L'article suivant
Réflexion et RealProxy: utilisation d'une interface
décrit le fonctionnement des proxys en Remoting.
Généralement pour modifier un contrôle d'une fenêtre:
Soit une méthode de la fenêtre prend en charge les mises à jour
Soit on le contrôle membre de la fenêtre est directement utilisé pour effectuer les mises à jour, par exemple this.textBox1.Text = ..., this étant la fiche courante
Le fonctionnement attendu du proxy est donc le suivant : tout appel de méthode d'un composant proxifié est appelé dans le thread principal de l'application, et toute manipulation d'un champ de type composant d'un composant proxifié est en fait une manipulation d'un proxy vers ce composant au lieu du composant lui-même.
1
2
3
4
5
»
Démarrer une discussion
Ecrire un commentaire
Titre
Commentaire
Annuler