Bonjour,
Je cherche a exécuter une partie du programme pendant un temps bien précis (3s par exemple). j'ai essaye d'utiliser les fonction de ChronoDébut(),ChronoFin(),ChronoValeur, mais ça marche pas. Es ce que quelqu'un a une idée?
Merci a l'avance
Bonjour,
Je cherche a exécuter une partie du programme pendant un temps bien précis (3s par exemple). j'ai essaye d'utiliser les fonction de ChronoDébut(),ChronoFin(),ChronoValeur, mais ça marche pas. Es ce que quelqu'un a une idée?
Merci a l'avance
Utiliser un timer ?
Il faut de toute façon que l'évènement soit accessible en permanence pendant l'exécution principale du logiciel.
Il est indispensable de tagger votre titre avec la version de WD utilisée pour que l'on puisse vous aider efficacement.
cf Règles pour poster un message.
Justement, un timer va faire appelle a ma procédure périodiquement (suivant la fréquence qu'on a préciser)
Ce que je veux moi, c'est de pouvoir exécute une partie de programme pendant une durée bien précise (par exemple:incrémenter une variable pendant 5s et après ces 5s revenir a mon programme principale).
J’espère que j'ai bien expliqué ce que je veux faire???
Merci a l'avance
C'était déjà très clair la première fois
Je ne parle pas d'utiliser un timer pour appeler votre procédure, mais d'appeler un timer pour vérifier si le temps est écoulé et si oui stopper la procédure ou le programme.
Mon vrais problème est de comment calculer le temps écouler et de pouvoir faire un test pour stopper l'exécution, j'ai essaye d'utiliser les fonctions de ChronoDébut(),ChronoFin(),ChronoValeur, mais je ne sais pas ce qui ne marche pas. Déjà en Débogueur il me dit que la fonction ChronoDébut() n'es pas évaluer. Voila la partie du code a toi de me dire ce qui ne marche pas...
La j'incrémente la valeur de température puis je fais un test
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Chronopro=(sortie..Valeur*Temp_cycle)/100 BOUCLE ChronoDébut() température..Valeur++ i=ChronoValeur()/1000 IF i=Chronopro THEN SORTIR FIN
Merci a l'avance
On ne parle pas du tout du même procédé.
J'ai toujours une version WD9 et je n'ai pas les fonctions Chrono.
ah ok alors comment je peux faire si je veux utiliser un timer pour la meme procedure, donner moi un exemple de code si c'est possible
Merci
Je tente ma chance voici une approche.
Lorsque tu veux commencer à executer le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ThreadExecute("MonThread",ThreadNormal,"MaProc") //en init de projet ThreadSuspend("MonThread")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ThreadReprend("MonThread") hdebut est une heure = HeureSys()
Dans la procédure thread
L'idée est maintenant de controler le temps d'execution de MaProc. Tu peux lancer un timer dans le code du projet ou de la fenetre qui vérifie périodiquement le temps écoulé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 PROCEDURE MaProc() tantque true //incrémentation variable //threadpause(10) pour ne pas surcharger le cpu FIN
Code : Sélectionner tout - Visualiser dans une fenêtre à part TimerSys("CtrTemps",100) //chaque seconde ou plus courtIl faudrait faire des tests voir ce que ca donne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 PROCEDURE CtrTemps Si ThreadExiste("MonThread") Si HeureDifference(heuresys,hdebut) > TempsVoulu ThreadSuspend("MonThread") //on arrête l'execution FIN FIN
ok je vous remerci , je vais voir ce que ca donne
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager