Bonjour,
J'explique mon contexte dans un projet WPF:
- Mon application exécute des commandes lors de l'installation
- J'ai une Progress barre qui se nomme Pb_Installation qui fonctionne durant l'installation.
- La valeur de la progress barre doit s'incrémenter à chaque exécution d'une commande
ex : Total des commandes à exécuter 12 donc Pb_Installation à son maximum bloquer à 12, à chaque commande valide la valeur de la Progress barre augmente +1.
J'ai d'abord utiliser un objet de type BackgroundWorker avec les Procédure DoWork et ProgressedChanged.
-Mon premier soucis à été que à l'intérieur de la procédure DoWork une exception se lever pour me dire que la PogressBarre était déjà utiliser par un thread.
-Le second était qu'en passant par l'évènement ProgressedChanged ma progress barre ne s'incrémenter alors jamais.
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 string Result = ExecuterCommande(uneCommande, unRole.ListeParametres); NbCommandeExe++; if (Result.Length >= 8) { if (Result.Substring(0, 8) == "-Erreur-") { myParagraph.Inlines.Add(Result.Substring(8, Result.Length - 8) + "\r\n"); ErreurCmd = true; } else { myParagraph.Inlines.Add(Result + "\r\n"); //Ici se trouve le cas où la commande est valide et que la progress barre doit s'incrémenter } }
Je viens tout juste de réaliser mes premiers test dans le milieu synchrone asynchrone donc je ne connais pas grand chose, si quelqu'un aurai quelque idée à me proposer, merci
Partager