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 :

Multiple thread executant meme procedure [WD18]


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 140
    Par défaut Multiple thread executant meme procedure
    Bonjour
    comment executer plusieur thread sur le meme procedure ?
    J'ai l'erreur suivant :
    Vous avez appelé la fonction ThreadExécute.
    Le thread 'Proch' existe déjà.
    aide-moi
    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 442
    Par défaut
    Bonjour,
    Le message est clair: il faut utiliser un nom différent pour chaque thread.

    Tatayo.

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 140
    Par défaut
    oui j'ai utilise des nom différent pour chaque thread et j'ai utilise un timer pour chaque thread c.a.d chaque thread je l'execute plusieur fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    timerHorloge est un entier
    //
    timerHorloge = TimerSys("O_chargerEmail",3000)
     
    PROCEDURE O_chargerEmail()
       ThreadMode(threadMonoProcesseur)
    ThreadExécute("Proch",threadNormal,O_Prechargement)
    O_Prechargement) est un procedure de chargement des emails
    aide moi

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 442
    Par défaut
    Citation Envoyé par vegetacherif Voir le message
    oui j'ai utilise des nom différent pour chaque thread et j'ai utilise un timer pour chaque thread c.a.d chaque thread je l'execute plusieur fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    timerHorloge est un entier
    //
    timerHorloge = TimerSys("O_chargerEmail",3000)
     
    PROCEDURE O_chargerEmail()
       ThreadMode(threadMonoProcesseur)
    ThreadExécute("Proch",threadNormal,O_Prechargement)
    O_Prechargement) est un procedure de chargement des emails
    aide moi
    Non, on voit bien dans ton code que tous les threads ont le même nom: "Proch".

    Je dirai donc que le thread lancé au premier appel n'a pas le temps de ce terminer avant le deuxième appel, d'où le message d'erreur.

    Tatayo.

  5. #5
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 140
    Par défaut
    Merci Tatayo
    Le problème c'est le nom de thread donc j'ai créé 10 thread avec des noms différents
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     POUR i=1 _A_ 10 
    ThreadExécute("Proch"+i,threadNormal,O_Prechargement)
    FIN
    Et voilà l’erreur :
    Erreur à la ligne 4 du traitement Procédure globale O_chargerEmail.
    Vous avez appelé la fonction ThreadExécute.
    Le nouveau thread 'Proch2' doit exécuter la procédure 'O_Prechargement' qui est déjà en cours d'exécution par le thread 'Proch1'. Pour autoriser plusieurs threads à exécuter la même procédure, il faut paramètrer le mode de gestion des threads par la fonction ThreadMode.
    selon l'erreur j'ai ajouté la fonction ThreadMode(threadSectionCritique) dans l'initialisation de projet et j'ai comment résultat l'erreur suivant :
    Vous avez appelé la fonction ThreadExécute.
    Le thread 'Proch2' existe déjà.
    Comment je dois exécuter multithreads sur même procédure ou bien en parallèle ?

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 442
    Par défaut
    Est-ce que le code est encode dans un timer ?
    Est-ce que l'erreur se produit au deuxième appel de ce code ?
    Si c'est oui pour les deux, j'en conclue que les threads n'ont pas le temps de se terminer entre deux appels.

    Tatayo.

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

Discussions similaires

  1. executer une procedure stockée ?
    Par Maddelphi dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/11/2005, 10h05
  2. Executer une procedure
    Par Dern dans le forum Access
    Réponses: 5
    Dernier message: 23/09/2005, 14h01
  3. executer une procedure stockée d'une BD depuis une autre BD
    Par MoTUmBo dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/08/2005, 16h02
  4. Dbgrid Executer une procedure dans un déplacement de ligne
    Par Morisse dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/05/2005, 07h01
  5. [Debutant][SQL] Execution de procedures stockées
    Par Yannos94 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/06/2004, 18h09

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