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 :

Communication Winform <-> Thread [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Par défaut Communication Winform <-> Thread
    Bonjour,

    Je suis en train de créer une application WinForm et j'ai un problème de méthodologie.

    Je développe mon application en couches(GUI, DAL, BLL, BusinessObjects).
    J'ai créé un backgroundWorker qui exécute mon traitement.
    Ce backgroundWorker est démarré par un click d'un bouton start.
    Jusque là pas de problème.

    Je ne sais pas comment je dois m'y prendre pour modifier les champs de mon WinForm (ProgressBar, StatusLabel) en fonction de mon traitement.

    Je n'ai rien trouvé de concluant sur internet.

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    Tu peux mettre en place un système d'évènements où chaque couche écouterait celle d'en dessous. De cette manière, dès qu'une action est réalisée sur la couche la plus basse, tu lances un event qui se propage jusqu'à la couche du haut qui met à jour l'UI.
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je n'ai rien trouvé de concluant sur internet.
    T'as pas du très bien chercher alors...

    Le BackgroundWorker est justement conçu pour faciliter ce genre de choses. Abonne-toi à l'évènement ProgressChanged, avec une méthode dans ce style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
    {
        progressBar1.Value = e.ProgressPercentage;
        statusLabel.Text = e.ProgressPercentage.ToString() + "%";
    }
    Et pour déclencher l'évènement, tu appelles la méthode ReportProgress pendant ton traitement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    backgroundWorker1.ReportProgress(progress);

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Dom-Tom

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Par défaut
    Merci.

    J'ai regardé la doc du backgroundWorker sur msdn et c'est bon.

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

Discussions similaires

  1. [C#][UserControl]Communication WinForm <> UserControl
    Par ben_popcorn dans le forum Windows Forms
    Réponses: 12
    Dernier message: 03/12/2007, 12h50
  2. Communication Winform 2.0
    Par xtiand4 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 12/11/2007, 16h51
  3. Winforms et Multi-threading
    Par CrazyDev dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/09/2007, 18h47
  4. [C# 2.0] Lancer une winform en multi thread
    Par Khrysby dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 11/07/2007, 10h56
  5. [WinForms]BackgroundWorker et threads
    Par b4u dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 13/12/2006, 18h55

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