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 :

PC qui rame, fonctions exécutées plusieurs fois [Débutant]


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut PC qui rame, fonctions exécutées plusieurs fois
    Bonjour

    j'ai un problème sur une application pour le boulot :

    mon application est divisée en 2 parties (pour être exact 2 applications en une, avec un form MDI) :
    1- récupère des valeurs provenant d'un automate, les traite et les stocke dans une base de données SQLite
    2- permet l'exploitation des données de la base (filtres de recherche, affichage datagridview, courbes (avec ZedGraph), ...).

    rien d'exceptionnel en soi

    je suis sur un PC industriel mais qui n'est pas si performant qu'on nous l'a présenté, et on peut facilement le faire ramer

    mon problème est le suivant, il semblerait que lorsque je fais une recherche dans ma base et qu'en même temps j'ai l'événement qui permet l'enregistrement des valeurs de l'automate, le PC rame d'une part (mais encore si tout se passait bien, ça serait acceptable), mais surtout certaines de mes fonctions sont réalisées plusieurs.

    c'est comme si le programme était bloquait à un endroit où on appelle une fonction et que tant que le PC rame on restait sur cet appel ...

    j'ai essayé les threads mais si ça rame à l'endroit de l'appel du thread, hé ben ça le fait plusieurs fois aussi, mais en plus rapide ...

    comment faire pour éviter ce phénomène ?

    merci

    @++

    KaloOopS

  2. #2
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Bonsoir,

    Pour éviter ce problème, il faut que tu éteignes et rallumes l'ordinateur...

    Plus sérieusement, sans code, on peut pas deviner grand chose...
    Un âne se croit savant parce qu'on le charge de livres (proverbe américain)

    N'oubliez pas de avant de
    Pas de question techniques par MP, c'est contre la philosophie du forum

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut
    ben je veux bien donner mon code mais je ne sais pas quoi car si je donne tout vous allez perdre votre temps à essayer de le comprendre (ben vi je ne suis pas informaticien à la base alors que certainement au niveau structure et optimisation je ne suis pas au top ... .. )

    par ce post, je voulais savoir déjà si quelqu'un avait déjà eu ce genre de problème ...

    merci

    @++

    KaloOopS

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Quand sisq060 parlait de "code", il ne s'agissait de transmette tout le projet, mais de donner des indicatons (éventuellement de courts extraits de code) sur les procédures répétées et sur la façon dont elles sont déclenchées.

    Une première piste : vérifier que les events ne déclenchent pas les uns les autres.

    Par exemple, un event A peut faire une modification de l'IHM qui va déclencher un évenement B qui peut faire une modification d'IHM qui redéclenche A.
    Un tel comportement arrive assez souvent lorsque plusieurs control nteragissent. Dans l'exemple cidessus, il faudra par exemple désactiver l'event B lorsqu'on entre dans A et le rétablir à la sortie.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut
    merci Graf'

    j'essayerai de vous faire un résumé de mon application (je suis bien occupé en ce moment, naissance oblige .. )

    quand tu dis
    désactiver l'event B l
    je fais comme ici ? http://www.developpez.net/forums/d28...ment-controle/

    vais étudier cette piste

    merci

    @++

    KaloOopS

  6. #6
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Bonjour,

    Tout d'abord félicitations...
    Si il s'agit d'être proactif, si tu utilises un backgroundworker pour tes threads vérifies que tu n'abonnes pas plusieurs fois la même fonction à ton événement DoWork.

    Par exemple, un event A peut faire une modification de l'IHM qui va déclencher un évenement B qui peut faire une modification d'IHM qui redéclenche A.
    Un tel comportement arrive assez souvent lorsque plusieurs control nteragissent. Dans l'exemple cidessus, il faudra par exemple désactiver l'event B lorsqu'on entre dans A et le rétablir à la sortie.
    Graffito, ce comportement est toujours suivi d'une StackOverflowException... Mais néanmoins il reste utile de le rappeler

    ben je veux bien donner mon code mais je ne sais pas quoi car si je donne tout vous allez perdre votre temps à essayer de le comprendre (ben vi je ne suis pas informaticien à la base alors que certainement au niveau structure et optimisation je ne suis pas au top ... .. )
    Nous ne sommes pas ici pour juger la qualité de ton code. Nous sommes là pour t'aider à résoudre ton problème. Si tu souhaites qu'on y arrive au plus vite, il faut nous donner toutes les informations que tu as en ta possession (Code, détail de l'erreur ou du comportement, j'en passe...)

    Bon dév.
    Un âne se croit savant parce qu'on le charge de livres (proverbe américain)

    N'oubliez pas de avant de
    Pas de question techniques par MP, c'est contre la philosophie du forum

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Graffito, ce comportement est toujours suivi d'une StackOverflowException... Mais néanmoins il reste utile de le rappeler
    Non, il arrive souvent que des actions des events ne soient effectuées qu'en cas de changement du contenu du contrôle. Ainsi le nombre d'appels imbriqués s'autolimite de lui même.

    oui
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 166
    Points : 84
    Points
    84
    Par défaut
    oki merci pour toutes ces réponses

    une des raisons du lag a été résolue dans ce post

    http://www.developpez.net/forums/d12...t/#post6888856

    @++

    KaloOopS

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

Discussions similaires

  1. Fonction s'exécute plusieurs fois
    Par bigbob195 dans le forum jQuery
    Réponses: 4
    Dernier message: 13/12/2012, 23h09
  2. Fonction Ajax sur clique qui s'exécute plusieurs fois
    Par arthuro45 dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 21/03/2011, 10h58
  3. Réponses: 3
    Dernier message: 28/11/2007, 15h44
  4. Sous-requête excutée plusieurs fois dans une requête
    Par sheridan31 dans le forum Oracle
    Réponses: 8
    Dernier message: 03/07/2006, 16h18
  5. [MySQL] Pages qui s'ouvrent en plusieurs fois
    Par Death83 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 01/05/2006, 01h10

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