bonsoir,
je viens à la pêche au code propre comme d'hab';p
Je refais mon LiveUpdate en .NET 2.0 et j'ai découvert le BackWorker :)
J'explique le programme en mode CONSOLE.
- On télécharge une liste de fichiers dans un dossier temporaire
- On aura un traitement à faire dessus
- On supprime ces fichiers
Le code est fonctionnel. Pour le moment, j'ai que 2 fichiers à downloader donc le code me crée en boucle 2 BackWorker qui download leur fichier.
Comme je connais leur nombre avant de créer le 1er backworker, j'ai une globale qui contient le nombre et je le décrémente à chaque évènement RunWorkerCompletedEventHandler.
Donc dans le thread principal, je dois attendre avant d'effacer ces fichiers grace au code :
while (NetworkUtility.g_RemainingFilesToDownload != 0)
{
System.Threading.Thread.Sleep (100);
}
Le truc c'est qu'une variable globale c'est moche.
Le truc c'est que l'objet passé dans BackWorker.RunWorkerAsync () est utilisable que dans le DoWork seulement et non dans RunWorkerCompleted. Donc de ce fait je ne peux pas lui passer mon compteur en parametre.
Une idée ?
Merci