BackgroundWorker et UserControl

Signaler
Messages postés
4
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
-
Messages postés
4
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
-
Bonjour à tous,
Bonjour à tous,
J'ai un userControl dans ma fenêtre principale qui contient des champs de paramétrage d'un Download. Lorsque je click sur le bouton OK de ce UserControl, je lance le téléchargement dans un BackgroundWorker. Je veux que ce UserControl se ferme et laisse la place à un autre UserControl qui contient une ProgressBar. Mon problème est que suite au clik, le téléchagement est lançé mais mon UserControl ne se ferme pas et celui contenant la ProgressBar n'apparait pas. Je pense que c'est un problème de rafraichissement mais je ne sais pas comment faire.
voici le code :
private void Download_ButtonClick(object sender, RoutedEventArgs e)
        {                        Download_UserControl.Visibility = Visibility.Hidden;
                       DownloadProgress_UserControl.Visibility = Visibility.Visible;
            
 _downloadWorker = new BackgroundWorker();
            _downloadWorker.WorkerSupportsCancellation = true;
_downloadWorker.DoWork += new System.ComponentModel.DoWorkEventHandler(_downloadWorker_DoWork);
_downloadWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(_downloadWorker_RunWorkerCompleted);
            
          
_downloadWorker.RunWorkerAsync();
            Thread.Sleep(100);

while (downloadWorker.IsBusy)
{
 UpdateProgressBar();                
Thread.Sleep(10);
            }


avec
 private void _downloadWorker_DoWork( object sender, DoWorkEventArgs e)
       {
           GXP_ClassComm MyClassCom = new GXP_ClassComm();
           string pathHex = System.IO.Path.Combine(GC_App.FolderPath, GC_App._mainDataProjectClass.FileName);
MyClassCom.Load_GraphicLibrary(pathHex);
       }



Merci d'avance pour votre aide!!

2 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
49
J'avoue ne pas avoir vraiment plongé le nez dans ton code, mais en ce qui concerne le rafraichissement, Application.DoEvents() marche souvent très bien. Si cependant tu utilises WPF (comme tu en as l'air), tu peux regarder par ici : Tapez le texte de l'url ici.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
Messages postés
4
Date d'inscription
mardi 7 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010

Merci, je vais essayer ça de suite.