Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1979 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Boulet]Temporisation?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Boulet]Temporisation?

n°422768
noobite
The Flying Sushi
Posté le 10-06-2003 à 15:46:26  profilanswer
 

quelle fonction permet de faire une tempo, exemple:
Au bout de x secondes on souhaite faire apparaitre
un message ou executer une autre fonction,...
Merci d'avance :jap:
 
[:bottedumal]


---------------
.: [Knowledge Is Power] || [Mon FeedBack] :.
mood
Publicité
Posté le 10-06-2003 à 15:46:26  profilanswer
 

n°422774
skylight
Made in France.
Posté le 10-06-2003 à 15:48:11  profilanswer
 

while :??:

n°422780
noobite
The Flying Sushi
Posté le 10-06-2003 à 15:50:24  profilanswer
 


 
Non, pas une boucle une tempo  :pfff:  
 
[:bottedumal]


---------------
.: [Knowledge Is Power] || [Mon FeedBack] :.
n°422781
Piemur2000
Posté le 10-06-2003 à 15:50:41  profilanswer
 

Tu pourais preciser quel environement tu utilise, tu fait du C, du C++, sous windows (win32??? MFC???) sous linux???

n°422782
skylight
Made in France.
Posté le 10-06-2003 à 15:50:55  profilanswer
 

while ( i < 10000000000000000  ){
 
}
 
:??:

n°422788
skeye
Posté le 10-06-2003 à 15:52:27  profilanswer
 

Skylight a écrit :

while ( i < 10000000000000000  ){
 
}
 
:??:


C'est nul...tu n'as aucun controle du temps qui s'écoule!


---------------
Can't buy what I want because it's free -
n°422791
skylight
Made in France.
Posté le 10-06-2003 à 15:53:09  profilanswer
 

skeye a écrit :


C'est nul...tu n'as aucun controle du temps qui s'écoule!

Tu tatonnes ! [:aloy]

n°422794
noobite
The Flying Sushi
Posté le 10-06-2003 à 15:53:54  profilanswer
 

Skylight a écrit :

while ( i < 10000000000000000  ){
 
}
 
:??:


 
Ok je l'ai fait et j'ai l'impression que la boucle s'effectue  
dès que la fenetre s'ouvre!  :pfff: de plus c'est une tempo  
imprécise... :sweat:  
 
PS:C++/Win32


---------------
.: [Knowledge Is Power] || [Mon FeedBack] :.
n°422797
VisualC_n3​T
Boolays élevés au grain
Posté le 10-06-2003 à 15:55:37  profilanswer
 

Code :
  1. for(int i=0;i<1000000000000000000;i++)
  2. {
  3. //peut etre que ca marche si t'as un pc assez lent lol
  4. }


sinon va chercher sur google
y'a pleins de cours C++ sur le net

n°422803
Joel F
Real men use unique_ptr
Posté le 10-06-2003 à 15:56:45  profilanswer
 

euh y a pas sleep ??

mood
Publicité
Posté le 10-06-2003 à 15:56:45  profilanswer
 

n°422807
skeye
Posté le 10-06-2003 à 15:57:46  profilanswer
 

Joel F a écrit :

euh y a pas sleep ??

+1!
ou wait, je confonds tjrs les 2 (qui n'ont en fait rien à voir)


---------------
Can't buy what I want because it's free -
n°422811
Piemur2000
Posté le 10-06-2003 à 15:59:08  profilanswer
 

Tu fait un SetTimer(hwnd, ID_TIMER, temps_en_ms, NULL) puis dans l'evenement WM_TIMER tu fait le code associé
 
Regarde msdn pour voir la syntaxe...

n°422817
Joel F
Real men use unique_ptr
Posté le 10-06-2003 à 16:00:05  profilanswer
 

SetTimer c windows pur ...  sleep c + ANSI non ?
ca depend de sa plateforme :P

n°422819
Piemur2000
Posté le 10-06-2003 à 16:00:30  profilanswer
 

Joel F a écrit :

euh y a pas sleep ??


 
Oui c vrai tu peu faire un sleep aussi mais ton programme ne feras plus rien pendant ce temps.

n°422828
Joel F
Real men use unique_ptr
Posté le 10-06-2003 à 16:03:22  profilanswer
 

Ah ca ca depend de ce qu'il veut faire ...
Mais bon le SetTimer :/

n°422831
roromaino
Posté le 10-06-2003 à 16:03:43  profilanswer
 

il faut utiliser GetTickCount c une horloge qui tourne en permanence.

n°422835
El_gringo
Posté le 10-06-2003 à 16:04:38  profilanswer
 

Joel F a écrit :

SetTimer c windows pur ...  sleep c + ANSI non ?
ca depend de sa plateforme :P


 
J'pense pas que sleep soit ANSI non plus. Et puis, surtout, c pas la même chose. Sleep bloque le process pendant un temps donné. C'est pas top pour ce qu'il veut faire: son interface sera figée pdt tt le temps du Sleep. Alors que SetTimer fait que l'appli reçoit un message WM_TIMER toutes les x milisecondes. Il ne reste plus qu'a traiter ce message dans la boucle des messages.

n°422838
Joel F
Real men use unique_ptr
Posté le 10-06-2003 à 16:05:12  profilanswer
 

Bis repetita ca depend donc de son appli, je met donc en attente de + d'infos.

n°422839
Piemur2000
Posté le 10-06-2003 à 16:05:22  profilanswer
 

Joel F a écrit :

Ah ca ca depend de ce qu'il veut faire ...
Mais bon le SetTimer :/


 
Pkoi le SetTimer :/???

n°422841
SoWhatIn22
Posté le 10-06-2003 à 16:05:36  profilanswer
 

Joel F a écrit :

SetTimer c windows pur ...  sleep c + ANSI non ?
ca depend de sa plateforme :P


sous win32, SetTimer est un timer qui utilise un méchanisme de callback alors que Sleep() permet de suspendre l'excecution.
Le pendant de SetTimer sous linux, ce serait plutot un setitimer, qui génère un signal ALARM une fois le timer expiré.
 
Mais dans les 2 cas (SetTimer  et setitimer), la fonction n'est pas blocante.

n°422845
Joel F
Real men use unique_ptr
Posté le 10-06-2003 à 16:06:40  profilanswer
 

sowhatin22 a écrit :


sous win32, SetTimer est un timer qui utilise un méchanisme de callback alors que Sleep() permet de suspendre l'excecution.
Le pendant de SetTimer sous linux, ce serait plutot un setitimer, qui génère un signal ALARM une fois le timer expiré.
 
Mais dans les 2 cas (SetTimer  et setitimer), la fonction n'est pas blocante.


 
Ah interresant, je note .

n°422848
roromaino
Posté le 10-06-2003 à 16:06:52  profilanswer
 

je me repete la meilleure solution qui est en plus la plus simple est d'utilisé la fonction GetTickCount qui est une horloge.

n°422851
roromaino
Posté le 10-06-2003 à 16:07:30  profilanswer
 

GetTickCount
The GetTickCount function retrieves the number of milliseconds that have elapsed since the system was started. It is limited to the resolution of the system timer. If you need a higher resolution timer, use amultimedia timer or a high-resolution timer.  
 
DWORD GetTickCount(VOID)
 
Parameters
This function has no parameters.  
 
Return Values
The return value is the number of milliseconds that have elapsed since the system was started.  
 
Remarks
The following table describes the resolution of the system timer.  
 
System Resolution  
Windows NT 3.5 and later The system timer runs at approximately 10ms.  
Windows NT 3.1 The system timer runs at approximately 16ms.  
Windows 95 and later The system timer runs at approximately 55ms.  
 
 
The elapsed time is stored as a DWORD value. Therefore, the time will wrap around to zero if the system is run continuously for 49.7 days.  
 
Windows NT: To obtain the time elapsed since the computer was started, look up the System Up Time counter in the performance data in the registry key HKEY_PERFORMANCE_DATA. The value returned is an 8-byte value.  
 

n°422856
Joel F
Real men use unique_ptr
Posté le 10-06-2003 à 16:07:55  profilanswer
 

euh sleep(1000) ca va aussi c facile, la qustion est de savoir si  
il veut une tempo bloquante ou pas ( a moins que j'ai mal compris et la effectivement , gettickcount serait adequat)

n°422860
roromaino
Posté le 10-06-2003 à 16:09:42  profilanswer
 

oui c vrai que sleep c facile aussi . enfin comme on c pas trop c qu'il veut....

n°422913
noobite
The Flying Sushi
Posté le 10-06-2003 à 16:46:38  profilanswer
 

roromaino a écrit :

oui c vrai que sleep c facile aussi . enfin comme on c pas trop c qu'il veut....


 
Trois seconde, je ne suis pas toujours connecté sur hardware!
(enfin presque  :D )
donc je ne veux pas une tempo blocante, donc la solution  
de roromaino me convient le mieux, merci à tous
si vous avez d'autres idées...
@+
[:bottedumal]


---------------
.: [Knowledge Is Power] || [Mon FeedBack] :.
n°422950
roromaino
Posté le 10-06-2003 à 17:08:07  profilanswer
 

ok ba je te donne un exemple tout con:  
double start,stop;
start=GetTickCount();

Code :
  1. while (1){
  2. //code
  3. stop=GetTickCount();
  4. if ((stop-start)>3000)
  5. {
  6. //code
  7. }
  8. }


n°422953
roromaino
Posté le 10-06-2003 à 17:09:28  profilanswer
 

j'ai foiré mes balises enfin t'as compris c po dur. Le resultat est en ms et il faut include windows.h

n°422957
skylight
Made in France.
Posté le 10-06-2003 à 17:13:06  profilanswer
 

Noobite a écrit :


 
Ok je l'ai fait et j'ai l'impression que la boucle s'effectue  
dès que la fenetre s'ouvre!  :pfff: de plus c'est une tempo  
imprécise... :sweat:  
 
PS:C++/Win32

ah la vache, ce que j'ai ecris c immonde :D
 
c'est bien entendu un for qu'il fo ..

n°422959
skeye
Posté le 10-06-2003 à 17:15:49  profilanswer
 

Skylight a écrit :

ah la vache, ce que j'ai ecris c immonde :D
 
c'est bien entendu un for qu'il fo ..


 :heink:  
C'est aussi immonde! [:ddr555]


---------------
Can't buy what I want because it's free -
n°422962
SoWhatIn22
Posté le 10-06-2003 à 17:19:00  profilanswer
 

roromaino a écrit :

ok ba je te donne un exemple tout con:  
double start,stop;
start=GetTickCount();

Code :
  1. while (1){
  2. //code
  3. stop=GetTickCount();
  4. if ((stop-start)>3000)
  5. {
  6. //code
  7. }
  8. }


 


c'est incroyable cette manie de ne pas utiliser les types donnés par la doc (alors que tu l'as puisque tu l'as cité plus haut). La fonction GetTickCount renvoie une valeur de type DWORD. Pourquoi ne pas l'utiliser? C'est pourtant aussi simple.


Message édité par SoWhatIn22 le 10-06-2003 à 17:19:50
n°422966
roromaino
Posté le 10-06-2003 à 17:24:44  profilanswer
 

exact tu as tout a fait raison, j'ai fait ca rapido pour qu'il comprenne..

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Boulet]Temporisation?

 

Sujets relatifs
temporisation en Javascript avec setTimeout bizzare non??gcc sous windows comment ca marche ? (boulet inside)
[Windev] Fonction de pause ou temporisation ??Excusez moi je jouer au boulet mais je capte pas une erreur java ...
Le boulet du PL/SQL est de retour !!! Sauvez-moi les Jedi de Oracle !![ PHPMyAdmin ] Le boulet???
[PHP] temporisationsuis un boulet help^!!!!
PHP : Comment faire une temporisation 
Plus de sujets relatifs à : [Boulet]Temporisation?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR