Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Attendre que le backgroudworker aie terminé son travail

3 réponses
Avatar
Lirim
salut, j'utilise le backgroundworker pour exécuter les taches lourdes sur
des threads différents..

dans une étape je dois attendre que le backgroundworker aie terminé son
travail avant de poursuivre.. est-ce que cela est possible?

suivant les procédures à exécuter, le backgroundworker peut prendre +/- du
temps inconnu à l'avance.

je ne peux pas faire un sleep tu thread principal car je ne sais pas combien
de temps prendra le travail du backgroundworker.

merci bcp

3 réponses

Avatar
Remi THOMAS
"Lirim" wrote in message
news:
salut, j'utilise le backgroundworker pour exécuter les taches lourdes sur
des threads différents..

dans une étape je dois attendre que le backgroundworker aie terminé son
travail avant de poursuivre.. est-ce que cela est possible?

suivant les procédures à exécuter, le backgroundworker peut prendre +/- du
temps inconnu à l'avance.

je ne peux pas faire un sleep tu thread principal car je ne sais pas
combien de temps prendra le travail du backgroundworker.

merci bcp




Salut
Il faut utiliser les objets de synchronisation
System.Threading.AutoResetEvent wait = new
System.Threading.AutoResetEvent(false);
Pour attendre à l'infinie
wait.WaitOne(System.Threading.Timeout.Infinite);
Pour faire sortir le WaitOne
wait.Set();

Rémi
Avatar
Grégoire PAILLER
Lirim a écrit :
salut, j'utilise le backgroundworker pour exécuter les taches lourdes sur
des threads différents..

dans une étape je dois attendre que le backgroundworker aie terminé son
travail avant de poursuivre.. est-ce que cela est possible?

suivant les procédures à exécuter, le backgroundworker peut prendre +/- du
temps inconnu à l'avance.

je ne peux pas faire un sleep tu thread principal car je ne sais pas combien
de temps prendra le travail du backgroundworker.

merci bcp



Pourquoi ne t'abonnes-tu pas à l'évenement RunWorkerCompleted du
BackgroundWorker ? Tu peux ainsi déclencher le second travail juste
après que le premier soit terminé (ou annulé).

--
Grégoire PAILLER
Avatar
Paul Bacelar
"Grégoire PAILLER" wrote in message
news:
Lirim a écrit :
salut, j'utilise le backgroundworker pour exécuter les taches lourdes sur
des threads différents..

dans une étape je dois attendre que le backgroundworker aie terminé son
travail avant de poursuivre.. est-ce que cela est possible?

suivant les procédures à exécuter, le backgroundworker peut prendre +/-
du temps inconnu à l'avance.

je ne peux pas faire un sleep tu thread principal car je ne sais pas
combien de temps prendra le travail du backgroundworker.

merci bcp



Pourquoi ne t'abonnes-tu pas à l'évenement RunWorkerCompleted du
BackgroundWorker ? Tu peux ainsi déclencher le second travail juste après
que le premier soit terminé (ou annulé).




Attention, il faut prendre en compte que le thread qui exécutera le delegate
enregistré sur RunWorkerCompleted n'est pas forcement (ne sera quasiment
jamais) le thread principal de l'application.


--
Grégoire PAILLER



--
Paul Bacelar
MVP VC++