[c++builder/api win32] les timers

les timers [c++builder/api win32] - Programmation

Marsh Posté le 26-08-2002 à 14:01:27    

pour le OnTimer de builder, et de maniere générale pour un timer....
 
 
le Timer n'appelle-t ontimer que si le logiciel est au "repos"
; par ex si je suis dans un calcul et qu'en plein milieu le timer  appelle, mon calcul serat-il momentanément interrompu par le "ontimer" ?

Reply

Marsh Posté le 26-08-2002 à 14:01:27   

Reply

Marsh Posté le 26-08-2002 à 14:12:14    

il se peut que de temps en temps tu doive faire un Application->ProcessMessages(); pour traiter les messages Windows (ça évite par ex que l'application ait l'air planté)
bon évidemment c'est mieux de mettre tes calculs dans un thread séparés si ça dure longtemps


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-08-2002 à 15:08:07    

euh, t'as pas répondu... si le timer crie en plein calcul, le timer attend que le calcul soit fini, ou le timer prend l main ?
 
 
(pour un tetris ca doit pas avoir bcp d'importance, masi bon)

Reply

Marsh Posté le 26-08-2002 à 15:16:15    

Ben si tu traite pas les message windwos pendant ton calcul ben le timer attend le fin.

Reply

Marsh Posté le 26-08-2002 à 15:22:02    

Sous Win/C, il y a un message émis WM_TIMER (de mémoire). Tout dépend de si on a prévu de le prendre en compte de façon prioritaire ou non.
 
Si c'est le Timer qui fait battre le coeur du programme, il faut que le travail en cours ne soit pas trop long (sinon, on risque de "rater le coche" ). Si le timer n'a qu'une action annexe, il faut de temps en temps vérifier si le message est ou non arrivé.
 
Dans un système 32 bits multithread, ça doit pouvoir être moins critique, si on s'y prend bien (je code tj sous 16 bits => j'imagine)...

Reply

Marsh Posté le 26-08-2002 à 16:01:53    

carbon_14 a écrit a écrit :

 
 
Si c'est le Timer qui fait battre le coeur du programme, il faut que le travail en cours ne soit pas trop long (sinon, on risque de "rater le coche" ). Si le timer n'a qu'une action annexe, il faut de temps en temps vérifier si le message est ou non arrivé.
 
 




 
dans mon cas, le timer donne juste le "top" pour faire descendre la piece en cours d'une ligne

Reply

Marsh Posté le 26-08-2002 à 16:09:18    

farib a écrit a écrit :

euh, t'as pas répondu...  




 
si, j'ai répondu, mais faut lire entre les lignes :p
(et je croyais que tu savais que le onTimer était issu d'un message Windows) :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-08-2002 à 16:47:03    

en gros, si il y a un calcul pendant le ontimer, il n'y a pas d'appel ontimer, point final ?


Message édité par farib le 26-08-2002 à 16:47:20
Reply

Marsh Posté le 26-08-2002 à 16:50:15    

farib a écrit a écrit :

en gros, si il y a un calcul pendant le ontimer, il n'y a pas d'appel ontimer, point final ?




 
Sauf si tu fais un Application->ProcessMessage(). Dans ce cas il sera traité lors de l'appel à cette méthode.

Reply

Marsh Posté le 26-08-2002 à 16:50:42    

ontimer sera appelé lorsque tu feras Application->ProcessMessages(); ou lorsque la fonction de calcul sera finie (en supposant qu'il n'y ait plus rien après)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-08-2002 à 16:50:42   

Reply

Marsh Posté le 26-08-2002 à 16:50:54    

argh grillé


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-08-2002 à 16:54:36    

antp a écrit a écrit :

argh grillé




 
hehe :D

Reply

Marsh Posté le 26-08-2002 à 17:55:48    

le ontimer est rétardé mais pas squizzé

Reply

Marsh Posté le 26-08-2002 à 18:04:20    

à moins que ton programme crashe ou que tu bousilles le pointeur contenant l'adresse de la fonction à appeler dans le OnTimer, il sera appelé à un moment ou un autre :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-08-2002 à 18:05:57    

antp a écrit a écrit :

à moins que ton programme crashe ou que tu bousilles le pointeur contenant l'adresse de la fonction à appeler dans le OnTimer, il sera appelé à un moment ou un autre :D




 
J'aimes bien ces remarques pleines d'optimisme :D

Reply

Marsh Posté le 26-08-2002 à 18:08:59    

oh chuis pas un porc!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed