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 :

Blocage de l'écran durant l’exécution d'une méthode


Sujet :

Windows Forms

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Janvier 2011
    Messages
    455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 455
    Points : 396
    Points
    396
    Par défaut Blocage de l'écran durant l’exécution d'une méthode
    Bonjour

    Je suis entrain de faire une insertion d'un fichier de 300 000 lignes dans une BD .
    Le déclenchement du méthode d'insertion se fait par click sur un bouton.
    En parallèle il y a un progressbar pour nous donne l'évaluation du traitement du fichier.
    Mon problème est le suivant : lors du l’exécution du méthode de traitement nous avons l'écran du mon programme est totalement bloqué alors je ne peux pas connaitre l'état du progressbar.
    Comment peut on résoudre ce problème ?

    Merci
    Cordialement

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    il faut lancer ton job dans un thread à part.
    Tu peux jouer avec les BackgroundWorkers qui sont assez simples d'utilisation.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 192
    Points : 28 073
    Points
    28 073
    Par défaut
    2 solutions :
    La solution de facilité consiste, si tu fais ton insertion dans une boucle, de mettre dans la boucle l'instruction Application.DoEvents. Cette instruction à pour effet de rendre la main au système pour que les messages windows concernant ton application (entre-autre actualisation de l'écran) soient traités. Généralement on la met au tout début de la boucle ou à la fin juste avant de reboucler.
    Une des conséquence sera de légèrement augmenter le temps d’exécution de ton insertion.

    La solution, plus propre, mais un peu plus complexe à mettre à œuvre (sans que ce soit une montagne non plus), est, comme dit précédemment, de déporter ton insertion dans un thread séparé. Comme cela, elle ne bloquera que son thread et le thread principal restera disponible pour rafraichir l'écran entre-autre.
    Le point le plus complexe est lorsque il doit y avoir une communication entre le job d'insertion et, par exemple, l'écran. Ca peut-être le cas notamment si tu veux que ta progressbar reflète réellement la progression. Là il faut mettre une communication inter-thread qui peut être un peu plus complèxe à gérer.

    Au besoin, tu trouveras des tutos dur DVP pour la mise en place et l'utilisation de threads.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur de construction de réseaux
    Inscrit en
    Janvier 2011
    Messages
    455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de construction de réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2011
    Messages : 455
    Points : 396
    Points
    396
    Par défaut
    Merci

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

Discussions similaires

  1. Blocage partie d'écran : Possible ?
    Par superpye dans le forum IHM
    Réponses: 3
    Dernier message: 01/07/2008, 13h37
  2. Blocage du serveur a l'ouverture d'une table
    Par Génie dans le forum Outils
    Réponses: 1
    Dernier message: 04/10/2006, 15h19
  3. Réponses: 1
    Dernier message: 22/06/2006, 09h17
  4. blocage sur une méthode synchronized
    Par rockelite dans le forum Général Java
    Réponses: 3
    Dernier message: 03/05/2006, 22h28

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