Bonjour à tous,
J'utilise un controle SerialPort. Lorsque je recois des informations de la machine reliée à mon port série, il y un un traitement qui se fait mais tout se passe en arrière plan.
Je voulais, lorsque le traitement était terminé, afficher une dialog pour laisser un choix d'opérations à l'utilisateur.
J'avais pour celà utilisé un Event dont j'avais défini un handler sur ma fenêtre principale (Si j'avais directement appelé le handler, j'aurais surement eu le mm résultat)
Mais lorsque le Handler est appelé, j'ai une erreur "invalid cross-thread operation"Je pense que l'erreur vient du fait que j'utilise le Me dans un thread qui n'est pas le mm que celui qui a créé la fenetre (je suis toujours dans le thread créé implicitement pour la réception) mais je ne sais pas du tout comment m'y prendre pour ne pas utiliser le Me. Sans doute devrais-je utiliser des synchronisations inter-thread ou qqe chose dans le style mais je ne sais vraiment pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ' Evenement qui se produit lorsque la communication et le traitement sont terminés Public Sub TxEndedHandler() dlgRefresh.ShowDialog(Me) ' <-- erreur ici dlgRefresh.Dispose() End Sub
Pourriez-vous'orienter?
Merci d'avance,
Nicolas
Partager