Bonjour,
Il faut que tu utilises dans ton "sous thread" des évènements que tu devras écouter dans ton thread principal.
Exemple dans ton "sous thread" qui doit renvoyer un boolean, tu déclares :
1 2
| public delegate void ThreadGeneratedEventHandler(object sender, Boolean state);
public event ThreadGeneratedEventHandler OnThreadStateChanged; |
Puis quand il le faut tu génères l'évènement :
this.OnThreadStateChanged(this, false);
Puis dans ton thread principal qui doit admettons activer un bouton lors de la génération de l'évènement. Tu déclare un delegate :
private delegate void changeState(Boolean b);
Et tu écoutes les évènements du "sous thread" :
this.TonSousThread.OnThreadStateChanged += new LaClasseDuSousThread.ThreadGeneratedEventHandler(LaMethodeAExecuter);
Enfin du écrits tes méthodes :
1 2 3 4
| private void LaMethodeAExecuter(object sender, Boolean state){
this.invoke(new changeState(ActiverBouton),state);}
private void ActiverBouton(Boolean state){
tonBouton.enabled = state;} |
Je ne sais pas si c'est très clair pour toi. Ce qu'il faut comprendre c'est que tu dois utiliser les évènements pour une communication inter-thread.
Bonne journée.
Partager