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 :

Pourquoi mon form freeze et se bloque apres reduction/restauration ? [Débutant]


Sujet :

VB.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut Pourquoi mon form freeze et se bloque apres reduction/restauration ?
    Bonjour,
    Je rencontre un petit souci avec un petit log en vb.net.
    Il est composé de 2 forms et chaque form a, pour des raisons pratiques, les icones de reduction, fermeture et restauration.

    Mon problème est le suivant :
    Losrqu'un form est ouvert (quel que soit le form et que ce soit sous seven ou XP) si je le reduis pour le mettre en barre des taches, et que je restaure a sa taille normale ensuite, voici ce qui se passe :
    - le formulaire se bloque : impossible d'ecrire dedans ou de cliquer sur quelque bouton que ce soit
    - la barre superieure (avec les boutons de reduction etc ...) ne s'affiche plus et si par hasard elle s'affiche quand meme, je ne peux rien faire dessus.

    Quel peut être le souci ???

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 184
    Points : 4 501
    Points
    4 501
    Par défaut
    Que ton application fait des traitements lourds et/ou répétitifs sans utiliser de thread. Donc ton application est bloqué pendant le temps de l'opération avant d'être libéré et de pouvoir faire le traitement de réaffichage.


    Il faut donc utiliser un BackGroundWorker (c'est un "thread" amélioré)

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Il se passe que tu dois avoir une boucle infinie probablement ou un traitement long

    EDIT : Oops devancé

  4. #4
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    ouille ....... c'est ecrit débutant au début du post ..... alors la vous me parlez dans un langage que mes neurones ont beaucoup de mal à décrypter .........

    En plus, ce que je ne comprends pas, c'est que je ne fais que reduire le form, par exemple, je lance le logiciel, je fais "reduire" sans solliciter le moindre calcul, je reagrandis et c'est la que ca bloque.
    Il s'agrandit mais plus de barre, souvent plus de boutons et freeze. Oblige de passer par un crtl + alt + suppr pour fermer le log

    Pourtant je n'ai lancé aucune séquence de calcul

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 184
    Points : 4 501
    Points
    4 501
    Par défaut
    Change de PC


    Sinon
    Difficile de comprendre le problème quand on a pas le code et qu'on ne voit pas le comportement

    La 2eme form n'est pas lancée via ShowDialog() qui rend inaccecible la 1er?
    que font tes 2 form?

  6. #6
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    non non pas de ShowDialog() dans le code.

    En fait les 2 forms font des calculs
    le form1 permet d'entrer les données et de calculer quelques valeurs

    l'appui sur un button du form1 lance le form2 superposé au form1 et lance une sequence de calcul qui s'execute en environ 1 seconde

    par contre mes forms sont en centerscreen et locked volontairement. Ne serait ce pas ca des fois ?

  7. #7
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    As-tu du code dans l'évènement Activated du formulaire que tu restaures ? Si oui, ce code va être exécuter et si le traitement qu'il est effectue est long, ton programme freeze.

    Possible aussi qu'il exécute du code qui se trouve dans l'évènement Shown si tu en as mis mais c'est à vérifier (je n'utilise jamais ce dernier).

  8. #8
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    Difficile de comprendre le problème quand on a pas le code et qu'on ne voit pas le comportement
    Comme l'a dit BenoitM, montre-nous le code, sinon on va pas y arriver...

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Moi je mise sur une boucle infinie

  10. #10
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    Citation Envoyé par Attila54 Voir le message
    ouille ....... c'est ecrit débutant au début du post ..... alors la vous me parlez dans un langage que mes neurones ont beaucoup de mal à décrypter .........

    pendant l'exécution de ton code, l'interface ne peut pas être rafraichit
    c'est pour ca qu'il ne faut pas écrire dans une méthode du code qui dure plus de quelques centaines de millisecondes, sinon "ne répond pas" et autres freeze

    si ca freeze longtemps puis que ca defreeze ca veut dire que ton code est trop long
    si ca freeze à l'infini c'est que ton code est surement dans une boucle infinie

    quand tu fais du pas à pas, il y a une ligne jaune qui te montre où en est l'exécution, ceci est un thread
    un thread n'exécute qu'une ligne de code à la fois
    le rafraichissement de l'interface est fait par le même thread que ton code, c'est pour ca que pendant que c'est dans ton code, l'interface n'est pas rafraichit

    il est alors possible quand on a des choses longues où potentiellement bloquantes à faire de le faire sur un autre thread (on peut avoir plusieurs centaines de threads par processus)
    avec 2 threads, il y a l'équivalent de plusieurs lignes jaunes de debug à des endroits différents
    en déportant un traitement sur un thread secondaire, le thread principal peut alors rafraichir l'interface, n'ayant rien d'autre à faire

  11. #11
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    c'est pas que je ne veux pas donner le code mais en tout y a bien 800 lignes .........

    Et pour lever le doute, j'ai juste fait une reduction agrandissement du form1 sans aucune séquence de calcul, .... idem .... freezage sans aucun retour à la normale

  12. #12
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Fais un .zip avec ton code et poste le fichier comme pièce jointe.

  13. #13
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    la je suis at home et j'ai pas le code, il est au boulot.

    Par contre j'ai constaté un truc :

    Je n'ai aucun freeze sur une station pas plus puissante en terrme de RAM, Video et Processeur, mais elle est en 64 bits alors que celles du boulot sont en 32 bit.
    Ceci expliquerait il cela ??????

  14. #14
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    Bon alors je viens de tester en debug et je n'ai rien noté d'anormal.

    En même temps, tant que le projet est ouvert dans vb.net, je n'ai aucun probleme.
    Tout se passe une fois publié et installé sur la station.

    Et aucun problème sur une architecture X64

  15. #15
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Si tu ne veux pas montrer un minimum de code pour qu'on puisse y voir plus clair, je te conseille de prendre rendez-vous avec madame Soleil pour une consultation de voyance. Peut-être trouvera-t-elle une solution à ton problème...

  16. #16
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Peut-être une DLL 64 bits que tu as intégré au projet.

  17. #17
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    le probleme n'est pas de montrer mon code, mais quelle partie vous montrer vue la longueur de celui ci ?????

    je ne vois pas de dll 64 bits, comment pourrais je en etre certain ?

  18. #18
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    J'ai posé une question à un moment dans la discussion. Pouvez-vous y répondre ?

    La première chose à faire avec ce genre de problème est de regarder du côté des évènements qui sont levés lors de la restauration du formulaire...

  19. #19
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2005
    Messages : 608
    Points : 145
    Points
    145
    Par défaut
    GRIFTOU, si tu fais reference au champ causes validated dans les proprietes du form, ce champ est sut "true"

    et j'ai un showin taskbar sur "true" aussi

  20. #20
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Citation Envoyé par Attila54 Voir le message
    GRIFTOU, si tu fais reference au champ causes validated dans les proprietes du form, ce champ est sut "true"

    et j'ai un showin taskbar sur "true" aussi
    Absolument pas...

    Je parle d'évènements et pas de propriétés. De plus, entre "Activated" et "causes validated", il y a quelques différences....

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/06/2011, 10h39
  2. Pourquoi mon compteur retourne a 0 apres 374?
    Par pierrot10 dans le forum Langage
    Réponses: 5
    Dernier message: 01/02/2008, 11h42
  3. Mon programme se bloque après quelques heures!
    Par mbouzouita dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 30/11/2007, 21h51
  4. Réponses: 6
    Dernier message: 19/11/2006, 00h41
  5. Réponses: 6
    Dernier message: 13/04/2006, 15h54

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