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

WinDev Discussion :

Connaitre la liste des fonctions qui sont en train de tourner.


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 103
    Points : 76
    Points
    76
    Par défaut Connaitre la liste des fonctions qui sont en train de tourner.
    Bonjour,

    Je lance une fonction TOTO() (sur un évènement) depuis une boucle dans un Thread. Cette fonction TOTO() a comme "Automatisme de la procédure" les options suivantes : 1X, immédiatement et en tâche de fond (donc dans un autre Thread).
    Si l'évènement se produit disons 3 fois, je devrais donc avoir normalement 3 instances de ma fonction qui tournent chacune dans un thread différent ; or je n'en suis plus certain car je n'arrive pas à toutes les arrêter!

    - Y a-til un moyen dans WD de voir l'ensemble des instances de fonctions qui tournent à un instant t ?

    merci de vos lumières,

    Gilbert,
    Merci de votre aide.
    Gilbert.

  2. #2
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Un petit bout de code simplifié ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    Voici en "pseudo code" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ProcédureAAA()//tourne dans un Thread A
     
    BOUCLE
       ...
       si SocketAccepte() alors //évènement qui déclenche le lancement de TOTO
           TOTO(sNomCanal)//lancée dans un autre Thread.
       fin
    END
    si je reçois donc 3 connexions Socket la fonction TOTO sera donc lancée 3X
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Procédure TOTO()//
    BOUCLE
    	SI SignalAttend("TERM",10) ALORS
    		Trace("TERM")
    		 SORTIR// sort de la boucle si le signal TERM est reçu
    	FIN
             .....
    FIN
    Or lorsque j'envoi le signal "TERM" mon Trace ne m'en affiche qu'un seul... d'où ma réflexion : ai-je vraiment lancé 3 instance de la fonction TOTO()
    Merci de votre aide.
    Gilbert.

  4. #4
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Bon tu as du oublier un petit passage là dedans :

    http://doc.pcsoft.fr/fr-fr/?3070004&...=SocketAccepte

    BD

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 103
    Points : 76
    Points
    76
    Par défaut
    ma gestion Socket est ok. dans l'exemple de code, j'ai dégraissé pour la lisibilité.
    mais on pourrait remplacer SocketAccepte(...) par n'importe quel autre évènement ; c'est juste pour l'exemple et le principe.

    Donc, il n'y aurai pas de moyen de voir en débugage la liste des fonctions instanciées ?

    merci de votre aide,
    Gilbert
    Merci de votre aide.
    Gilbert.

  6. #6
    Membre éprouvé

    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    402
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 402
    Points : 915
    Points
    915
    Par défaut
    Bonjour,

    avec le fichier trace ça devrait marcher donc c'est bien que tu ne lances qu'une instance.
    Le problème est donc de savoir pourquoi...
    Je pensais que dans la fonction SocketAccepte tu devais passer en paramètre le nom de ton Socket ?

  7. #7
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 161
    Points : 221
    Points
    221
    Par défaut
    À priori, non. Par contre, tu peux revenir au bon vieux debuggage à la console (Trace) et renseigner un compteur statique [protégé bien évidemment par mutex !] te permettant d'attribuer des identifiants à tes threads et youplaboum !

  8. #8
    Membre confirmé Avatar de jimmypage
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 314
    Points : 474
    Points
    474
    Par défaut
    Citation Envoyé par ihih45 Voir le message
    Donc, il n'y aurai pas de moyen de voir en débugage la liste des fonctions instanciées ?
    Gilbert
    Une fonction ne "s'instancie" pas .. une classe oui

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/09/2009, 10h55
  2. Réponses: 35
    Dernier message: 14/11/2008, 15h30
  3. Réponses: 22
    Dernier message: 04/08/2006, 00h29
  4. Liste des fonctions
    Par Mookie dans le forum C
    Réponses: 2
    Dernier message: 22/09/2003, 16h42

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