Page 1 sur 1

[R] Timer sans Boucle qui ne consomme pas

Posté : mer. 28 avr. 2010 16:07
par jajar
Salut, j'aimerai savoir comment faire, pour que toutes les 20 minutes, mon script autoit lance des instructions sans que ca consomme du CPU, merci.

Re: [..] Timer sans Boucle qui ne consomme pas

Posté : mer. 28 avr. 2010 16:10
par aikiox
Bonjour,

Tu peux lancer une tache planifié qui execute ton scripte toute les 20 minutes.

Cordialement
Romain

Re: [..] Timer sans Boucle qui ne consomme pas

Posté : mer. 28 avr. 2010 17:02
par Tlem
De par la conception d'un ordinateur, il est impossible de lancer quoi que ce soit sans que le processeur ne soit sollicité (même tréééés légèrement).

Je suppose que votre problème est que le script que vous avez conçu fonctionne en boucle et consomme une quantité non négligeable de ressources processeur. :roll:

Vous avez plusieurs solutions (dont celle indiquée par aikiox).
1- Faire une boucle d'attente qui vérifie une exécution toutes les 20Mn, en n'oubliant pas de mettre une pause de 1s (Sleep(1000)) afin de ne pas trop solliciter le CPU.

2- Faire comme dans le 1, mais en utilisant la fonction AdlibRegister afin d'exécuter le code toutes les 20Mn (AdlibRegister("MaFonction", 1200000)).

Bon code. ;)

Re: [..] Timer sans Boucle qui ne consomme pas

Posté : jeu. 29 avr. 2010 15:31
par jajar
ok, merci !

Re: [..] Timer sans Boucle qui ne consomme pas

Posté : jeu. 29 avr. 2010 17:25
par jajar
les sleep m' ont aidé, j'avais entendu parler d'une fonction timer si quelqu'un connait.

Re: [..] Timer sans Boucle qui ne consomme pas

Posté : jeu. 29 avr. 2010 22:34
par Tlem
Bonsoir.
J'ai juste fait une petite correction dans ce que j'ai dit précédemment, car j'avais dit une grosse bêtise en donnant cette ligne de code :

Code : Tout sélectionner

AdlibRegister("MaFonction", 20000)
et en disant qu'elle permettait d'exécuter MaFonction toutes les 20 minutes.

Grosse erreur de calcul de ma part, car 1000 ms = 1 s, donc 60 s (soit 1 minute) font 60000 ms et donc 20 Mn donnent 1000 * 60 * 20, ce qui nous donne 1200000 ms ... :oops:

En ce qui concerne la fonction Timer, elle s'utilise comme ceci :

Code : Tout sélectionner

$begin = TimerInit() ; initialisation du timer.

While 1
    sleep(1000)
    If TimerDiff($begin) > 1200000 Then ExitLoop ; Si le timer dépasse 20 Mn, on sort de la boucle While.
WEnd

MsgBox(0,"","La boucle a duré 20 Mn")

Re: [R] Timer sans Boucle qui ne consomme pas

Posté : lun. 03 mai 2010 21:24
par jajar
ok ^^ merci !

Re: [..] Timer sans Boucle qui ne consomme pas

Posté : mer. 05 mai 2010 14:57
par ptifou78
En ce qui concerne la fonction Timer, elle s'utilise comme ceci :

Code : Tout sélectionner

$begin = TimerInit() ; initialisation du timer.

While 1
    sleep(1000)
    If TimerDiff($begin) > 1200000 Then ExitLoop ; Si le timer dépasse 20 Mn, on sort de la boucle While.
WEnd

MsgBox(0,"","La boucle a duré 20 Mn")
[/quote]

Voila j'aurais une question par rapport a ce code es-ce que

Code : Tout sélectionner

sleep(1000)
Va s'appliquer a tout le code ou juste a la boucle par exemple on aurais

Code : Tout sélectionner

$begin = TimerInit() ; initialisation du timer.
While 1
MsgBox(0,"","MsgBox pendant 20 Mn")
Wend

While 1
    sleep(1000)
    If TimerDiff($begin) > 1200000 Then ExitLoop ; Si le timer dépasse 20 Mn, on sort de la boucle While.
WEnd
Exit
le message MsgBox pendant 20 Mn va s'afficher tout le temps ou alors ça va faire attendre 1sec puis après afficher le Msgbox ?

Re: [R] Timer sans Boucle qui ne consomme pas

Posté : mer. 05 mai 2010 16:42
par jajar
non, la avec ce code tu risque d'afficher le message box a l'infini,

car tu as mis cette bouche avant le timer :

Code : Tout sélectionner

$begin = TimerInit() ; initialisation du timer.
While 1
MsgBox(0,"","MsgBox pendant 20 Mn")
Wend
si tu veux que le msgbox s'affiche toute les 20 min et attendre une seconde avant de se lancer met le après le sleep de la 2 éme boucle.

par contre je crois pas qu'il soit possible de crée 2 boucle infini dans le même code, car ca ne passera pas a la 2 éme vu que l'autre va s'exécuter encore et encore...

Re: [R] Timer sans Boucle qui ne consomme pas

Posté : mer. 05 mai 2010 20:01
par ptifou78
Ok merci des précision ;)