cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 24 sept. 2005 à 19:30
Salut,
As-tu jeté un oeil sur le très bon tutorial de MorpionMx ?
Il traite du Cross-Threading justement...
Tu le trouveras à cette adresse : http://www.csharpfr.com/tutorial.aspx?ID=174
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 25 sept. 2005 à 17:33
Oui désolé.
Tu peux sans problème mettre en place un callback, mais le code sera toujours executé dans le contexte du thread secondaire, alors que l'utilisation de Control.Invoke permet justement d'executer le code de la méthode de callback dans le contexte du thread ayant déclaré le controle.
Mais il existe peut être une solution que je ne connais pas. (si tu trouves je suis client )
CMatt
Messages postés38Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention15 octobre 2010 25 sept. 2005 à 22:42
Salut,
j'ai rapidement survolé le contenu du lien, mais il ne traite pas de ce que je souhaite arriver à faire.
En effet, ton lien traite surtout des solutions pour prévenir tout
problème lors des accès concurrents (simultanés par plusieurs threads)
à des instances d'objets.
cs_Smalo
Messages postés36Date d'inscriptionlundi 3 janvier 2005StatutMembreDernière intervention11 décembre 2006 26 sept. 2005 à 13:43
Salut,
Je sais pas si je répète quelqu'un ou si ça ne règle pas ton problème.. mais ça m'a l'air simple, moi je déclarerai un délegate dans ton programme principal qui fait le traitement des données que tu lui envoi en paramêtre et tu lance ce délégate dans ton thread qui écoute.. du coup les traitements vont se faire dans le délegate par le thread principal .. nan? Si tu veux un bou de code je ferai ça à la maison mais là je suis au taff et pas le tps :(
CMatt
Messages postés38Date d'inscriptionvendredi 16 janvier 2004StatutMembreDernière intervention15 octobre 2010 26 sept. 2005 à 14:06
Salut,
en fait, mon programme console ne le restera pas longtemps puisque j'ai l'intention de faire une interface graphique.
Si j'ai posté ce sujet, c'est que je n'ai pas trouvé de moyen simple de
déléguer le traitement d'un flux de données reçu par un thread dans un
aure thread.
Je résume mon projet : j'ai un thread auxiliaire qui guette l'arrivée
de messages sur un socket, il recupère les données et je veux traiter
ces données dans le thread principal.
Pourquoi? Je trouve qu'utiliser la méthode Control.Invoke n'est pas
attrayante. C'est pour cela que je suis à la recherche d'une solution
équivalente pour le faire en amont (au niveau de mon objet qui
encapsule le thread auxiliaire).
Ce que je pense faire en définitive, c'est utiliser la méthode Invoke
du formulaire principal de mon application directement dans le corps du
thread auxiliaire, afin d'appeler une méthode de l'bjet qui encapsule
le thread auxiliaire.
Si y a moyen de ne pas utiliser de contrôles, je suis preneur!
@++ et merci pour le temps que vous m'avez consacré.