begin process at 2010 02 10 12:24:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

création d'un signal d'horloge dans un thread


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

création d'un signal d'horloge dans un thread

mercredi 7 septembre 2005 à 13:04:18 | création d'un signal d'horloge dans un thread

elroulianito

Je précise que j'utilise les mfc sous vc6:
Voilà je voudrais créer un signal d'horloge toutes les x millisecondes (exemple un bip sonore toutes les secondes pends 10 secondes).
En créant un timer par la méthode SetTimer il suffit de placer la ligne Beep(1000,50); dans ::Ontimer.
 Seulement le problème est que suivant l'utilisation du cpu,  l'interval  de temps entre les bips n'est pas constant.

Ma question est la suivante: A partir de ma premère ébauche ci-dessous, comment consomer le moins de ressources possible du cpu ?
Et si possible éviter le recours à  la fonction Sleep.

--------------------------------------------------------------------------------------------------------------
UINT Thread_Timer(LPVOID lparam)
{
      //interval (en ms) entre chaque bip
      long STEP=1000;
     
      long MyStartTime,LastBeep,elapsedtime;
 
      MyStartTime=LastBeep=GetTickCount();
      Beep(1000,50);
   
      while(!StopThreadTimer(MyStartTime))
      {
            //Calcul du temps écoulé depuis l denier bip
            elapsedtime=GetTickCount()-LastBeep;
  
            //au bout de x millisecondes (ici x= STEP) un nouveau bip est émis
            if (elapsedtime>=STEP)
            {
                  LastBeep = GetTickCount();
                  Beep(1000,50);
                  //Attendre quelques milliscondes pour soulager l'utilisation du processeur
                  Sleep(100);
            }
      }
      AfxEndThread(TRUE);
 return 0;
}

BOOL StopThreadTimer(long MyStartTime)
{
 //Durrée totale de la séquence
 long DURATION=10000;
 
 if( GetTickCount()-MyStartTime < DURATION)
  return false;
 return true;
}



Cette discussion est classée dans : long, bip, gettickcount, mystarttime, lastbeep


Répondre à ce message

Sujets en rapport avec ce message

Copie de fichiers de nom long avec Visual C++ sous Windows98 [ par ABT ] Salut, Je développe une application avec Visual C++, l'une de ses est de copier des fichiers à partir d'un répertoire vers un autre. J'utilise pour ce Comment on fait pour éméttre un bip ( de la tour ) en C++ ? [ par RaZoR ] Je voudrais savoir comment on fait ( avec Borland V.5.5)pour émettre un bruit quand on appuie sur une certaine touche !!!!! long double et VC++ [ par omi ] J'ai un leger probleme avec visual C++ 7.0 .N'y a t'il pas un moyen de lui faire accepter les long double car il les prend pour des double normaux cad Probleme avec le registre [ par punx120 ] Voila j'aimerais recuperer la valeur d'une chaine dans la base des registres, mais je n'y arrive pasvoici le code que j'utilise : #include #include vo bip [ par alfred289 ] sauf \a y a t'il d'autres commandes pour produiredes sons différents sous borland en mode texte ? I NEED SOMEBODY HELP [ par lerilcy ] Mon programme coupe des fichiers en part egales puis les recompose dans un 2eme temps.Un peu comme les compresseurs type RZsplit Winrar... A la compil type de variable? long int ? [ par dleewax ] salut! je suis nouveau dans le C++ et j'ai un petit problème... je suis en train de faire un petit programme permettant de calculer les factorielles.. new ... [ par payen ] bonjour,une petite question en ce qui concerne le calcul d'un temps : si je fais le code suivant, est ce que j'obtiens le temps REEL d'allocation?deb conversion constante en hexa ->unsigned long ou int ??? [ par andrealphus ] 4ndr&@lphu$rebonjour à tous et toutes,mon nouveau probleme est ridicule mais gênant...comment peut on convertir un nombre hexadécimal (du style l'adre API :: Gestion de plusieurs fenetres [ par JackosKing ] Bon, voilà, j'ai fait un programme qui peux creer un infinité de fenêtres (en fonction de la ram bien entendue:)), le probleme c'esgt pour la gestion


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales