Operation interThread non valide : utilisation des delegates

Signaler
Messages postés
48
Date d'inscription
mardi 23 novembre 2004
Statut
Membre
Dernière intervention
20 décembre 2009
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonsoir,
J'aurai besoin d'un précision sur l'utilisation des delegates en c#.

j'utilise les delegates pour rafraichir l'avancement du progressbar de cette façon :

objWebclient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressBarState);
objWebclient.DownloadFileCompleted += new AsyncCompletedEventHandler(DownloadCompleted);

qui appel donc les methodes suivantes :

       private void ProgressBarState(object sender, DownloadProgressChangedEventArgs e)
        {
            this.Invoke(objProgressBarDelegateInProgress, new object[] { e.ProgressPercentage });
        }

        private void DownloadCompleted(object sender, AsyncCompletedEventArgs e)
        {
            comptVideo = comptVideo + 1;
            this.Invoke(objProgressBarDelegateCompletedHandler);
            if (tablength == comptVideo)
            {
                MessageBox.Show("Download Completed");
            }
            objThreadDownloadVideo = null;//libere le thread
            b_downloadCompleted = true;
        }

Les delegates ci dessous sont appelés par les delegates des événements de l'objet objWebclient (this.Invoke)

 private delegate void ProgressBarDelegateInProgressHandler(int percent);
 private ProgressBarDelegateInProgressHandler objProgressBarDelegateInProgress;

 private delegate void ProgressBarDelegateCompletedHandler();
 private ProgressBarDelegateCompletedHandler objProgressBarDelegateCompletedHandler;

Cette solution marche mais ce qui me semble étonnant c'est que je sois
obligé de passer par des delegates pour appeler d'autre delegate sinon
j'ai une erreur opération interThread non valide :(

J'aurai voulu savoir si c'était normal de procéder de cette facon .

1 réponse

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85