Bonjour,
J'ai commencé le dev en .NET et C# il y a 1 semaine à peine.
Je suis face à unprobleme est classique, mais dans un contexte different.
J'ai une frmMain qui contient une FrmTerminal : cette frmTerminal gere la liaison RS232 avec un microcontrolleur.
D'un point de vue conceptuel, la gestion de la communication RS est reservé à frmTerminal, tandis que frmMain ne fait que demander un envoi de donnees / recevoir des données.
On se retrouve donc dans le cas classique d'echange de données entre 2 applis : une solution est donnée par exemple ici http://faqcsharp.developpez.com/?page=form#form_meth .
On peut encore utiliser les delegate et invoke.
test basique
Si je gere l'echange via un bouton classique, pas de probleme.
delegate, invoke, .... trop facile
automatisation
Pour automatiser la communication, je decide d'utiliser l'evenement OnDataReceived du composant serialport (frmTerminal).
Je lui demande donc l'execution de ma methode de traitement précédente, qui fonctionne, et ....
Cross-thread operation not valid
Je ne comprend pas d'ou provient la difference entre le cas basique fonctionnel et l'automatisation qui plante.
Quel est l'impact du composant serialport et de l'event OnDataReceived.
Merci de votre aide.
Vincent
Partager