Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Modifier une ProgressBar dans un Thread

Sujet résolu
    27 janvier 2020 à 0:56:57

    Bonsoir,

    Je viens à vous pour demander comment je pourrais résoudre mon problème qui est le suivant : modifier la valeur d'une barre de progression depuis un Thread.

    Je suis débutant en C#, j'utilise la dernière version de Visual Studio 2019 community et j'ai créé un projet WPF (il me semble que cela s'appelle comme ça). Dans ce projet j'ai un bouton qui permet de lancer des threads pour télécharger des fichiers. J'aimerais que dans le code de chaque Thread je puisse modifier ma barre de progression et donc faire en sorte qu'elle "avance" au fur et a mesure des téléchargements. 

    J'ai essayé de me renseigner sur le web et d'appliquer ce que je trouvais mais sans succès. J'ai cru comprendre qu'il pourrait y avoir plusieurs méthodes comme utiliser Invoke/BeginInvoke ou un backgroundWorker.

    Le problème étant que lorsque j'essaie de coder progressBar.Invoke et bien cela ne fonctionne pas du tout. J'ai une erreur qui me dit que Invoke n'existe pas...  Même chose pour un backgroundWorker. 

    Je n'arrives pas à comprendre... J'ai l'impression que c'est simple à mettre en place mais que cela ne se fait plus comme avant. Pourtant il y a bien les méthodes sur la documentation Microsoft et elles semblent être compatible avec VSC2019... Je désespère.

    Merci d'avance,

    Quentin.

    • Partager sur Facebook
    • Partager sur Twitter
      27 janvier 2020 à 10:11:44

      Google m'indique ceci :

      https://stackoverflow.com/questions/5789926/wpf-c-sharp-update-progressbar-from-another-thread

      Pourquoi cela ne fonctionnerait pas chez-vous ?

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
        27 janvier 2020 à 13:23:53

        Bonjour,

        Avec votre solution ça a fonctionné ! Merci beaucoup :) J'étais à courts d'idées et d'imagination. J'ai adapté mon code et ma barre de progression fonctionne parfaitement.

        private void IncrementProgressBar()
                {
                    Dispatcher.Invoke(() =>
                    {
                        double value = progressBar.Value;
                        value += 1.0;
                        progressBar.Value = value;
                    });
                }



        -
        Edité par QuentinAetherian 27 janvier 2020 à 13:24:20

        • Partager sur Facebook
        • Partager sur Twitter

        [C#] Modifier une ProgressBar dans un Thread

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown