IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Progress bar et thread


Sujet :

C#

  1. #1
    Invité
    Invité(e)
    Par défaut Progress bar et thread
    Bonjour,
    J'ai un problème avec ma progressbar, elle n'évolut pas.
    Pour commencer voici mon code:
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public partial class Form1 : Form
        {
            private Thread th;
            private PPE alfa;
     
            public Form1()
            {
                InitializeComponent();
                button1.Click += new EventHandler(btnLancer_Click);
            }
            private void btnLancer_Click(object sender, EventArgs e)
            {
                this.alfa = new PPE();
                this.th = new Thread(new ThreadStart(Progres));
                this.th.Start();
            }
            public void Progres()
            {
                do
                {
                    this.label2.Text = this.alfa.result.ToString();
                    this.label4.Text = this.alfa.lastNbr.ToString();
                    this.label5.Text = this.alfa.result.ToString();
                    progressBar1.Value = this.alfa.alfa.nbr.Count;
                } while (progressBar1.Value < this.alfa.alfa.nbrGenerated);
            }
        }
    Donc en faite ici cette classe ne me sert que pour l'affichage de l'évolution d'un calcul qui se fait dans la classe PPE. Dans l'objet alfa de la classe PPE j'ai une variable de type List qui grandit de 0 à 10000. Ma progressbar commence à 0 et son max est 10000. J'aimerai donc que ma progressbar se rempli au fur et à mesure que ma list se remplie.
    Au lieu de cela, après avoir cliqué sur le bouton pour lancer le calcul, la progresse avance d'un cran et s'arrête, et les label ne change pas de valeurs.

    Merci
    Dernière modification par Invité ; 21/02/2012 à 19h25.

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    On peut "bidouiller" en insérant l'instruction Application.DoEvents() après la mise à jour de la ProgressBar.

    Mais la solution propre consiste à utiliser un BackGoundWorker.
    http://glarde.developpez.com/dotnet/bgworker/cs/

  3. #3
    Invité
    Invité(e)
    Par défaut
    Nickel merci c'est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Progress bar dans un nouveau thread ?
    Par yayou49 dans le forum VB.NET
    Réponses: 6
    Dernier message: 30/03/2015, 11h45
  2. [Débutant] BackgroundWorker, Progress Bar et utilisation de Thread multiples ?
    Par iOops dans le forum VB.NET
    Réponses: 9
    Dernier message: 12/03/2013, 19h26
  3. Thread, delegate, join, process et progress bar
    Par LsMarx dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/08/2012, 13h18
  4. Progress bar en multi-threading
    Par lestatbzh dans le forum Tkinter
    Réponses: 19
    Dernier message: 07/11/2011, 11h52
  5. Thread, Fenêtre Modal et Progress Bar
    Par Angelinsky7 dans le forum C#
    Réponses: 7
    Dernier message: 24/09/2009, 23h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo