bibibiba
Messages postés3Date d'inscriptionjeudi 15 novembre 2007StatutMembreDernière intervention23 juillet 2008
-
23 juil. 2008 à 14:04
krishou
Messages postés60Date d'inscriptiondimanche 9 janvier 2005StatutMembreDernière intervention21 août 2008
-
23 juil. 2008 à 16:23
Bonjour,
J'ai une application qui se connecte a une base de données et qui doit remplir un doc word avec les informations collectées.J'ai une progressbar qui tourne pendant ce temps.Mais j'ai toujours la meme erreur "progressbar1" a été appellée par un thread autre que celui pour lequel elle a été appéllée.
la progressbar est codée dans une autre classe ,progressdialog, que celle du thread t et est incrementée par la methode Avance().
prog = new ProgressDialog(0,10, "Enregistrement du site...");
t = new Thread(new ThreadStart(AfficheDialogue));
t.Start();
this.btn_modif.Enabled=false;
prog.Avance();//
Pourriez vous m'aider svp???J'ai vu quelques pages sur delegate/invoke/begininvoke mais comme la progressbar est un attribut d'une autre classe de celle du nouveau thread ,je ne sais pas trop ou les placer...
lemmingperceval
Messages postés128Date d'inscriptionmardi 18 décembre 2007StatutMembreDernière intervention 2 août 20096 23 juil. 2008 à 14:39
Les quelques pages que tu as vu te mène sur la bonne voie.
Dans la class principale (celle où tu instancie ton thread), créer un nouveau delegate:
private
delegate
void
DelegateCallMethodAvance
();
Ensuite, dans ta méthode AfficheDialogue, tu utilise la méthode Invoke à la place de directement utilisé prog.Avance.
this
.Invoke(
new
DelegateCallMethodAvance(prog.Avance));
L'idée, ce que t dise au thread principal d'appeler la méthode Avance.
C'est jamais tu as pas compris, dis le et je réessai
bibibiba
Messages postés3Date d'inscriptionjeudi 15 novembre 2007StatutMembreDernière intervention23 juillet 2008 23 juil. 2008 à 15:56
Merci beaucoup a vous 3!!!Je n'ai pas encore tout tout compris sur les threads mais grace a vous ma progressbar marche merci!
Vais devoir m'y mettre aux threads...:)
Vous n’avez pas trouvé la réponse que vous recherchez ?