Bonjour,
Je me casse les dents sur un problème d’événement.
J'ai une appli qui contient un gestionnaire de clients TCP qui crée X clients en fonction des besoins.
Chaque client remonte par événement au gestionnaire de clients quand il est connecté.
Le gestionnaire remonte ensuite, toujours par évènement, à la form principale qu'un client s'est connecté.
Client
gestionnaire de clients
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 //declaration de l'évenement dans le client public event StringEventHandler Sync; protected virtual void OnSync(StringEventArgs e) { StringEventHandler handler = Sync; if (handler != null) { handler(this, e); } } ... OnSync(e); //declenche l'évenement de connexion ...
Dans la form principale
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 //Déclaration de l'évenement de connexion d'un client public event StringEventHandler TCPSync; protected virtual void OnSync(StringEventArgs e) { StringEventHandler handler = TCPSync; if (handler != null) { handler(this, e); } } //Dans le code de creation d'un nouveau client : client.Sync += _Sync; //Executé quand un client se connecte void _Sync(object sender, StringEventArgs e) { //Declenche un nouvel evenement OnSync(e); }
Lors d'une connexion d'un client l'evement remonte correctement jusqu'au gestionnaire de client mais il ne remonte pas jusqu'à la form.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 TCPManager.TCPSync+=_Sync; void _Sync(object sender, StringEventArgs e) { tbConsole.Text = "Sync:"; tbConsole.Text += e.Text + "\r\n"; }
Quelqu'un à une idée pourquoi ?
Merci
A+
JP
Partager