Faire communiquer un thread et une form

Fennec74 Messages postés 5 Date d'inscription mardi 24 juin 2008 Statut Membre Dernière intervention 23 juillet 2008 - 16 juil. 2008 à 15:10
Fennec74 Messages postés 5 Date d'inscription mardi 24 juin 2008 Statut Membre Dernière intervention 23 juillet 2008 - 17 juil. 2008 à 09:32
Bonjour à tous,
Je tiens tout d'abord à m'excuser si je ne poste pas mon message au bon endroit.

J'ai plusieurs questions à vous posez et j'espère que vous pourrez m'aider. Toutes ces questions ont un rapport avec la liaison série.

J'émet une trame de 20 caractères que je récupére en VB. Lorsque je récupère cette trame, je doit tester chaque octet afin de valider la vérédicité de la trame.

En VB6, j'utilisai MSCOMM et grâce au événements je pouvai récupérer tous les caractères qui passaient sur la ligne.

Aujourd'hui je suis en VB.net (2005)

1° problème) Comment se fait-il que la gestion des événement du composant SerialPort ne marche pas aussi bien que sous vb6?

2° problème) Comment faire pour qu'un thread communique avec la form. Je cherche mais je ne trouve pas de documentation assez claire, si quelqu'un aurait un lien, je suis preneur.

Je vous remercie d'avance de l'aide que vous pourrez m'apporter.

Fennec

4 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
16 juil. 2008 à 16:54
Bonjour,

Avec quelques retour à la ligne ce serait plus lisible, mais bon, passons.

1) Tu peux détailler? Si tu parles des evenements, c'est à toi de gérer.
2) Comment tu créé ton thread, avec System.Threading.Thread ou avec un BackGroundWorker ?

Enfin, je ne comprends pas ta question :
- accéder à un élément d'une form à partir d'un autre endroit dans le programme : Form1.TextBox.Text="blabla"
- Problème de rejet de modif à partir d'un autre thread (par une exception dans les règles), utiliser un delegate et la méthode Invoke de la form ou don controle désiré.

http://nhen0039.chez-alice.fr/index.php
0
Fennec74 Messages postés 5 Date d'inscription mardi 24 juin 2008 Statut Membre Dernière intervention 23 juillet 2008 2
16 juil. 2008 à 17:39
Bonjour NHenry

1)J'utilisai OnCommEvent. Et sur Vb.net j'utilise quasiment la même syntaxe(avec les subtilitées de Vb.net) mais le résultat est bien différent de ce que j'attend.

2)Je crée mon thread avec System.threading.

Par rapport à ta dernière phrase elle m'a mit sur la voie. Je vais utiliser un delegate.

Merci de tes réponses. ;-)

Ps: Pour le problème de retour à la ligne comment fait-on pour éditer les messages, je m'en suis rendu compte qu'après l'avoir publier.

Fennec
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
17 juil. 2008 à 09:09
Bonjour,

1) pour le port COM, il faut tout gérer toi même ou utiliser les CallBack (Begin*, End*).
bonus) pas d'édition possible, mais si cela persiste, utilises la TextBox classique en cliquant sur :
[infomsg.aspx?ajout=&ID=1172078&txtmode=0 Si vous n'arrivez pas à saisir votre message, CLIQUEZ ICI pour revenir à une "TextBox classique"]

http://nhen0039.chez-alice.fr/index.php
0
Fennec74 Messages postés 5 Date d'inscription mardi 24 juin 2008 Statut Membre Dernière intervention 23 juillet 2008 2
17 juil. 2008 à 09:32
Ok merci de ton aide, je vais tester tout ca et je reviendrai poster mon code final.

Fennec
0
Rejoignez-nous