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++Builder Discussion :

Priorité d'exécution de routines


Sujet :

C++Builder

  1. #1
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut Priorité d'exécution de routines
    J'utilise Borland C++ 6
    J'ai plusieurs Timers qui déclenchent l'exécution de routines
    T1 : OnEvent exécute la routine R1
    T2 : OnEvent exécute R2

    Comment peut on rendre par exemple T2 prioritaire sur T1 c'est à dire si l'event T2 arrive durant R1 alors interompre R1 pour exécuter R2 puis finir R1 ou, au contraire si T1 est prioritaire sur T2 finir R1 puis seulement exécuter R2?

    Merci pour vos réponses!

  2. #2
    Membre très actif Avatar de nirgal76
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2007
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 923
    Par défaut
    Un OnEvent étant déclenché à la réception d'un message, une fois que tu en traite un, tu ne pourras pas savoir si l'autre est arrivé à moins de scruter toi même régulièrement dans le traitement du Timer1 la boucle de message pour, Timer2, ce qui ne serait pas très élégant
    Le mieux, est de réfléchir à une solution "multithreadée".

    Dans ton thread principal tu traite les OnEvent de T1 et T2 dans R1 et R2.
    si T1 se déclenche, dans R1, tu lance un thread TH1 pour traiter T1.
    pendant ce temps, le thread principal reprends son cours.
    s'il voit que le OnEvent de T2 se déclenche, dans R2, tu suspends le Thread TH1, (s'il existe), tu crée le thread TH2 et tu l'exécute.
    quand TH2 se termine (je te laisse trouver une solution pour détecter sa fin sans bloquer le thread principal), tu resume TH1.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    avec juste deux priorités deux timers suffisent, il suffit d'inactiver le moins prioritaire lors du traitement du principal

  4. #4
    Membre très actif Avatar de nirgal76
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2007
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 923
    Par défaut
    Citation Envoyé par Fbartolo Voir le message
    avec juste deux priorités deux timers suffisent, il suffit d'inactiver le moins prioritaire lors du traitement du principal
    Oui mais si le moins prioritaire se déclenche avant le plus prioritaire ?
    tu fais comment pour savoir que le plus prioritaire vient de se déclencher alors que tu es dans la routine de traitement du moins prioritaire (sachant que tu veux stopper celui ci aussitot) ?
    Nan, Pas vraiment de soluce sans thread moi je dis. Et il ne faut pas en avoir peur, c'est très simple à programmer un thread, surtout avec BCB

Discussions similaires

  1. Exécuter une routine avec Talend
    Par jellyBean dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 24/03/2010, 00h04
  2. Priorité d'exécution dans le code
    Par pkrvz dans le forum VBA Access
    Réponses: 6
    Dernier message: 29/03/2008, 08h12
  3. Réponses: 2
    Dernier message: 25/03/2008, 18h14
  4. Réponses: 7
    Dernier message: 11/09/2006, 14h23
  5. Priorité d'exécution dans une dll
    Par Neilos dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/05/2005, 15h59

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