Thread

Equinox84 Messages postés 63 Date d'inscription lundi 2 février 2004 Statut Membre Dernière intervention 19 mai 2010 - 7 avril 2006 à 15:24
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 7 avril 2006 à 23:27
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
7 avril 2006 à 23:27
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#
*/
0
Rejoignez-nous