Précédent   Forum du club des développeurs et IT Pro > C et C++ > C++ > Bibliothèques
Bibliothèques Forum d'entraide sur les bibliothèques C++ : installation, utilisation. Avant de poster : Cours sur les bibliothèques C++
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/04/2012, 19h28   #1
MiniPic
Invité de passage
 
Homme
Étudiant
Inscription : avril 2012
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : avril 2012
Messages : 1
Points : 0
Points : 0
Par défaut Utilisation de Timer

Bonjour,
Je souhaite utiliser à la manière du .Net des timers qui déclencherons un évènement après N millisecondes. Mais je ne peux pas utiliser Visual-studio et n'arrive pas a trouver une bibliothèque équivalente.
Auriez vous des idées ?

Merci d'avance pour votre aide.

Simon
MiniPic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2012, 19h44   #2
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 426
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2008
Messages : 10 426
Points : 40 020
Points : 40 020
Bonjour,

Cela dépend du système que vous utilisez, mais si c'est sous Windows, il y a des Timer dans la WinAPI -> http://msdn.microsoft.com/en-us/libr...creating_timer
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2012, 12h03   #3
Kaamui
Membre expérimenté
 
Homme Clément
ingénieur d'étude et de développement
Inscription : novembre 2011
Messages : 432
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France, Vienne (Poitou Charente)

Informations professionnelles :
Activité : ingénieur d'étude et de développement
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 432
Points : 585
Points : 585
Bonjour,

je vais peut-être dire une bêtise, mais il n'y a pas une librairie "chrono" dans le nouveau standard ? Elle n'est pas encore utilisable c'est ça ?
Kaamui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2012, 11h13   #4
oodini
Membre Expert
 
Inscription : novembre 2004
Messages : 2 026
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 2 026
Points : 1 426
Points : 1 426
Sinon, il y a Boost.Chrono.
__________________
VDS "The C++ Standard Library" (Josuttis) -> 30 €
oodini est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2012, 03h33   #5
Klaim
Expert Confirmé
 
Avatar de Klaim
 
Homme Joel Lamotte
Développeur de jeux vidéo
Inscription : août 2004
Messages : 1 554
Détails du profil
Informations personnelles :
Nom : Homme Joel Lamotte
Localisation : France

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2004
Messages : 1 554
Points : 2 971
Points : 2 971
Citation:
Envoyé par Kaamui Voir le message
Bonjour,

je vais peut-être dire une bêtise, mais il n'y a pas une librairie "chrono" dans le nouveau standard ? Elle n'est pas encore utilisable c'est ça ?
Elle est utilisable si tu utilises un compilateur qui la fourni.

Sinon tu peux utiliser boost::chrono (mais je crois qu'elle va évoluer dans les versions a venir).



Sinon, chrono est chouette mais n'est pas suffisant pour faire office de timer. Généralement un timer est surtout une sorte d'evenement plus ou moins asynchrone, or ici on ne peut que mesurer le temps passer avec chrono. Autrement dit, chrono permet de facilement implémenter un système de timer spécifique, mais il ne propose pas d'implémentation de timer.

Il me semble qu'il y a boost.timer qui en propose mais qui est très vieux et en cours de réimplémentation parceque pas très bon niveau perfs (ou quelque chose dans le genre).

Accessoirement, boost::asio offre aussi de quoi faire des timer mais c'est peut être overkill.
Klaim est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2012, 10h43   #6
Kaamui
Membre expérimenté
 
Homme Clément
ingénieur d'étude et de développement
Inscription : novembre 2011
Messages : 432
Détails du profil
Informations personnelles :
Nom : Homme Clément
Localisation : France, Vienne (Poitou Charente)

Informations professionnelles :
Activité : ingénieur d'étude et de développement
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2011
Messages : 432
Points : 585
Points : 585
Citation:
Envoyé par Klaim Voir le message
Elle est utilisable si tu utilises un compilateur qui la fourni.

Sinon, chrono est chouette mais n'est pas suffisant pour faire office de timer. Généralement un timer est surtout une sorte d'evenement plus ou moins asynchrone, or ici on ne peut que mesurer le temps passer avec chrono. Autrement dit, chrono permet de facilement implémenter un système de timer spécifique, mais il ne propose pas d'implémentation de timer.
Je ne comprends pas.. tu veux dire qu'elle ne propose pas de timer et qu'on est obligé de l'implémenter soi-même ou qu'on ne peut pas faire de timer avec ?

Plus ou moins asynchrone ? Tu veux dire que tu voudrais pouvoir avoir un timer en tache de fond (en parallèle ?) ?
Kaamui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2012, 12h48   #7
Ekleog
Membre émérite
 
Homme Léo Gaspard
Étudiant
Inscription : janvier 2012
Messages : 433
Détails du profil
Informations personnelles :
Nom : Homme Léo Gaspard
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 433
Points : 875
Points : 875
Je pense que Klaim parlait d'un timer qui active une fonction en parallèle à son expiration.

Ca reste émulable avec quelque chose comme (non testé) :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void foo() { std::cout << "Hello, Timer World !" << std::endl; }
 
struct Timer {
   std::chrono::steady_clock::duration time;
   void operator() () {
      auto start = std::chrono::steady_clock::now();
      while (std::chrono::steady_clock::now() < start + time) ; // Peut etre accelere avec un sleep dans la boucle -- ou bien si chrono propose un wait ?
      return foo();
   }
};
 
int main() {
   std::thread th(Timer{std::chrono::steady_clock::duration(100)});
   th.join();
}
Ekleog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2012, 16h32   #8
Klaim
Expert Confirmé
 
Avatar de Klaim
 
Homme Joel Lamotte
Développeur de jeux vidéo
Inscription : août 2004
Messages : 1 554
Détails du profil
Informations personnelles :
Nom : Homme Joel Lamotte
Localisation : France

Informations professionnelles :
Activité : Développeur de jeux vidéo
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2004
Messages : 1 554
Points : 2 971
Points : 2 971
Ah oui désolé, le terme timer peu prendre des sens différents selon les frameworks...
Klaim est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h57.


 
 
 
 
Partenaires

Hébergement Web