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

VB.NET Discussion :

Enchainer le travail de Plusieurs BackGroundWorker en cascade [Débutant]


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut Enchainer le travail de Plusieurs BackGroundWorker en cascade
    Bonjour à tous,
    Je suis vraiment en difficulté pour faire ce que je veux avec les BackGroundWorker.

    Alors en fait j'ai 4 gros blocs de données à charger en arrière plan juste après l'affichage de ma Form.
    Je voudrais enchaîner le chargement de ces 4 blocs (DoWork) plutôt que les charger tous en parallèle pour une raison simple, c'est que je voudrais pouvoir afficher la progression des ces 4 blocs indépendamment les uns après les autres via un seul ToolstripProgressBar et un ToolStripStatusBar en bas de ma Form.
    De plus ma Form est composé de 4 TabConcrol, chacun correspondant à ces 4 blocs de données. Et quand le 1er bloc de données a fini de charger je voudrais pouvoir remplir les contrôles correspondant dans TabControl1 (RunWorkerCompleted) tout de suite sans attendre la fin du chargement de la totalité des 4 blocs de données et ainsi de suite. Ceci pour pouvoir prendre la main sur le TabControl qui à fini de charger.

    J'ai tenté ceci mais ça bloque l'affichage de l'UI forcement et contrôler la propriété BackGroundworker.IsBusy ne marche pas non plus :
    Et si j’enlève les Do While tous les Background fonctionne en même temps.
    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
     
            Private LoadingData1Completed As Boolean
            Private LoadingData2Completed As Boolean
            Private LoadingData3Completed As Boolean
            Private LoadingData4Completed As Boolean
     
            bgw1.RunWorkerAsync()
            Do While Not LoadingData1Completed
            Loop
            bgw2.RunWorkerAsync()
            Do While Not LoadingData2Completed
            Loop
            bgw3.RunWorkerAsync()
            Do While Not LoadingData3Completed
            Loop
            bgw4.RunWorkerAsync()
            Do While Not LoadingData4Completed
            Loop
    Merci beaucoup pour votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,
    Pourquoi ne pas démarrer le nouveau backgroundWorkder dans l'event RunWorkerCompleted du BackgroundWorker précédent ?

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Points : 372
    Points
    372
    Par défaut
    En effet je crois que ça fonctionne. J'avais pourtant déjà essayé mais j'avais du faire une étourderie quelques part...
    Merci beaucoup ebastien.
    Je passe en résolu en esperant que cette fois c'est la bonne

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Remarque que à moins que les background worker aient besoin en input du résultat des précédents, il n'y a pas vraiment de raison valable pour les lancer en série plutôt qu'en parallèle.

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

Discussions similaires

  1. Report 6 : Enchainer plusieurs reports en cascade ?
    Par gg2vig dans le forum Reports
    Réponses: 0
    Dernier message: 10/09/2008, 10h23
  2. Réponses: 5
    Dernier message: 28/05/2007, 11h52
  3. [MySQL] Travailler avec plusieurs bases
    Par lababa dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 28/02/2007, 00h10
  4. travail a plusieurs sur un fichier excel
    Par pierre56680 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/02/2006, 19h37
  5. travail sur plusieur classeur
    Par calimero91 dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 12/01/2006, 15h37

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