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

Windows Forms Discussion :

Problème BackgroundWorker dans un MDI


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 41
    Par défaut Problème BackgroundWorker dans un MDI
    Bonjour,
    Je développe une appli winform MDI dans laquelle (comme son nom l'indique) on est capable d'ouvrir plusieurs sous fenêtres au sein desquelles on peut lancer le téléchargement de données via web services.

    Donc, dans chaque sous fenêtre j'ai un objet BackgroundWorker et un proxy web service. Le backgroundWorker lance l'appel à la méthode web en tache de fond. Tout ça fonctionne très bien.

    Si j'ouvre deux fenêtres et que je lance le téléchargement, j'ai bien mes deux progressBar qui avancent en parallèle.

    Par contre, si j'ouvre 4 fenêtres et que je lance les 4 téléchargements, seuls les deux premiers se lancent en parallèle et dès que l'un d'entre eux se termine, le 3ème démarre.

    En fait, tout se passe comme si j'avais un pool de 2 Thread. Quoi que je fasse je ne suis pas capable de lancer plus de 2 téléchargement simultanément.

    Y a t-il une limitation du backgroundWorker?? Pourtant j'ai bien une instance de backGroundWorker par fenêtre fille.

    (Pour info, j'ai un dual core et j'ai vaguement l'impression que le chiffre 2 vient de là)

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut
    Salut,

    Je ne crois pas qu'il faille te diriger vers le background worker pour trouver d'où vient ton probleme.

    Essayes de faire une chose dans ton appli :

    Plutot que de telecharger ce que tu as a telecharger, tu schintes toute la partie download et à la place tu mets une boucle qui va de 0 à 100 avec à l'interieur deux choses :

    1) Tu incremente ta valeur de progress bar
    2) tu fais un theading.Thread.sleep de 1000 (ou plus ou moins comme tu veux, pour vraiment te rendre compte mais je pense que 1000 ca ira)

    Tu balourde 4 downloads qui ne downloadent pas mais mettent seulement a jour tes progress bar et tu vois ce que ca donne.
    Si tu as bien tes 4 progress bar qui se mettent à jour c'est que c'est une limitation normale du nombre de download sur ta machine.

    Par contre une chose etrange, il me semblais que l'on pouvait telecharger jusqu'à 4 fichiers simultanément... or là 2 ca me parait trop peu.
    M'enfin dans tous les cas, je penche plus pour une limitation systeme que tu vas pouvoir tester avec ma méthode plus haut.

    @+

Discussions similaires

  1. Problème alinéa dans textarea
    Par guitaros dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 23/12/2004, 00h07
  2. Problème formatage dans balise title / alt
    Par jflebegue dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 09/12/2004, 15h18
  3. [VB6] Ouverture d'une nouvelle fenêtre dans un MDI
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 17/02/2003, 14h03
  4. [VB6] Position d'une MDIchild dans un MDI
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 29/01/2003, 14h02
  5. Impression dans une MDI Application
    Par Andry dans le forum Composants VCL
    Réponses: 8
    Dernier message: 19/12/2002, 08h45

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