-
Thread & progressBar
Bonjour,
Pour mon application j'ai besoin de faire un calcul assez long sur ma base de donnée, et tout au long de se calcule, une progressbar s'affiche pour montrer l'avancement, j'ai fait cela sans les thread, ca me donne une erreur si je réduis ma fenetre lors de l'execution je dois rien faire sur mon poste jusqu'a ce que tout soit fini, donc j'ai pensé au thread, quand j'ai essayé d'en faire la pagaille dans ma tete !!
quand j'essaye de modifier la valeur du progressbar dans le thread ca passe pas, j'ai lu que c'était normal, après j'ai essayer d'utiliser la méthode invoke, ca marche mais quand je réduis mon application je sais pas prq la fenetre ou il y a la progressbar devient blanche ( sa beug )
j'ai lu beaucoup d'article, j'ai essayé de m'y mettre mais franchement je réussis pas trop,
quelqu'un aurait -il un tutorial claire et simple pour que je sache quoi faire ?
Mercii
-
Essaye d'utiliser un BackgroundWorker, c'est un peu plus simple.
Il y a beaucoup d'exemples sur la MSDN ou sur internet en faisant une recherche Google.
-
j'ai vu le backgroudwork, mais c'est un traitement asynchrone, moi je veux que ca soit synchrone , car pendant les calculs l'utilisateur ne doit pas pouvoir modifier des données sinn mais calculs seront faux.
quand je lance le calcule une forme se charge et elle ne contient qu'une progressBar.
Mon problème majeur, c'est la progressBar, c'est elle que je n'arrive pas a gérer. je dois bien l'afficher mais elle plante tjrs
-
Imaginons donc ta Form qui contient les données. Lorsque l'utilisateur clique sur le bouton "Calculer", tu ouvres une fenêtre modale (via ShowDialog()). L'intérêt d'utiliser une modale est que l'utilisateur ne peut plus avoir accès à la Form qui contient les données et les modifier pendant le traitement. Cette fenêtre modale contient donc ta ProgressBar et un BackgroundWorker qui se charge de faire le calcul et de mettre à jour la ProgressBar. Lorsque le calcul est terminé, le BackgroundWorker va automatiquement déclencher son événement RunWorkerCompleted. A ce moment là, tu peux afficher les résultats, fermer la modale et no soucy.
-
-
Merci enormement pour ton aide, effectivement, j'ai fait exactement ce que tu m'as dit et ca marche, tu me sauves la vie après 3h de casse tete !!!
Merci encore une fois .