Apres maintes utilisations d'event et d'invoke, je me retrouve avec une erreur qui me laisse perplexe.
Alors voila, j'utilise un gestionnaire d'evenement de mon port serie, déclaré de la facon suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
portserie.DataReceived += new SerialDataReceivedEventHandler(this.Dll_Rs232_OnDataReceived);
La fonction dans laquelle le programme va basculer lors d'un evenement est la suivante: Dll_Rs232_OnDataReceived. J'utilise un invoke sur un System.EventHandler
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
        private void Dll_Rs232_OnDataReceived(object sender, EventArgs e)
        {
            OnEvents evenements = new OnEvents();

            OnDataRecues.Invoke(this, evenements);
        }
Concernant l'invoke, il est utilisé de la facon suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
m_globale.m_Rs232.OnDataRecues += new System.EventHandler(this.OnTest);
et la fonction qui le recoit est la suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
        private void OnTest(object sender, EventArgs e)
        {
            textBox10.Text = ((OnEvents)e).DataRecues;
        }
Et la, je me retrouve avec un message d'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Opération inter-threads non valide : le contrôle 'textBox10' a fait l'objet d'un accès à partir d'un thread autre que celui sur lequel il a été créé.
Apres investigation, le souci vient du faite que je fasse l'invoke à l'interieur de la fonction delegate du à l'évenement SerialDataReceivedEventHandler

J'ai fait le tour de mes idées, et je m'en remet aux votres.
En vous remerciant pour votre aide.

Cordialement,

Léo V.V