Bonjour, Je charge des donnees d'une base dans un dataset ,le traitement est assez lourd. Pour ne pas que l'utilisateur pense que l'appli ne repond pas j'ai essayé d'integrer une Progressbar ca fait 2 semaines que je planche sur le sujet. Mais là je n'ais plus de visibilité et je m'en mêle les pinceaux.

Voila où j'en suis: L'importation des données se fait au clique d'un bouton.

Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 // Le bouton
private void Bt_exp_Click(object sender, EventArgs e)
 {

        this.DgResultat.DataSource = null;
        Thread t = new Thread(new ThreadStart(ThreadMethod));
        t.Start();
 }
// Le traitement dasn le Thread(base de donnees -> Datagridview)
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
16
 private void actualiser_dg(){
               
            MonDataAdapter.Fill(ds, flux);                  
            DgResultat.DataSource = ds.Tables[flux].DefaultView;
            foreach (DataGridViewRow currentRow in DgResultat.Rows)
            {
                currentRow.Selected = false;
                if (currentRow.IsNewRow == false)
                {
                   //Traitement lourd... 
                }
                Show_ProgressBar();
            }
            MyProgressBar.ReInit();
}
// La progressbar
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12

private void Show_ProgressBar()
 {
    if (InvokeRequired) //si on n'est pas dans le thread principal
    {
       Invoke(new progress(Show_ProgressBar));             
     } else{
         MyProgressBar.Max = DgResultat.RowCount;
         MyProgressBar.PerformSteps();  
      }             
}
// La méthode appelé dans le thread

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7

private void ThreadMethod()
 {
         this.Invoke(new progress(actualiser_dg));

   }
La progressbar evolue bien pendant le chargement mais ralentie considerablement le temps de chargement.