Thread

Signaler
Messages postés
63
Date d'inscription
lundi 2 février 2004
Statut
Membre
Dernière intervention
19 mai 2010
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour :



Est ce qu'il est possible de lancer une méthode via un thread différent que celui dans lequel on est ?

Si oui comment ?



--> mon problème:



Quand je clique sur un controle, dans la méthode Move de la souris, je
lui fais déclencher un évènement qui remonte, qui lui même déclenche un
évènement. Donc au sommet de la chaine, j'ai mon appel de méthode
déclenché par le dernier evt, et dans cet appel, je récupère un objet
que je dois mettre a jour.





Le problème est que je dois faire un appel de méthode pour mettre a
jour cet objet, et que cet appel de méthode, je dois absolument le
faire apres avoir quitté ma dernière méthode déclenchée par mon evt
pour que la pile d'appel de méthodes où on était déclenchés les
évènements se termine(ou se réduise)





Dans un premier temps, j'ai crée un thread qui se lançais dans la
dernière méthode déclenchée par l'évènement, et dans se thread je met a
jour l'objet. Ca marche, mais le problème c'est que je manipule des
UserControl, et on ne peut pas rajouter un UserControl sur un
UserControl Parent si c'est d'un thread différent.



Si vous avez lu jusqu'a la, merci beaucoup !

1 réponse

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
Salut,

Utilise Control.Invoke pour appeler une méthode qui fera l'ajout dans le contexte du thread principal.
Regarde le tuto de Mx : http://www.csharpfr.com/tutoriaux/CSHARP-OPERATIONS-CROSS-THREADS-UTILISATION-DELEGATIONS-SYNCHRONES-ASYNCHRONES_174.aspx

/*
coq
MVP Visual C#
*/