Bonjour,
Pour un projet, j'ai besoin d'implémenter des timers pour s'assurer que certaines boucles ne durent qu'un certains temps. Voici mon code :
Ce code fonctionne très bien quand je teste sur des boucles d'attente (while(!t.tempsEcoule()))) pour des durées faibles (qqs secondes). Seulement voilà, j'ai besoin d'un timer de 24 heures (soit 86400 secondes), à ce moment-là, la boucle s'arrête instantanément. En débuguant, j'ai remarqué que c'était dû à la variable m_fin (de type clock_t) qui prend une valeur négative à partir d'une certaine valeur de m_duree (un peu plus de 10000).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 Timer.h : class Timer { private: clock_t m_fin; public: Timer(); ~Timer(); void armerTempo(unsigned long int duree); bool tempsEcoule(); }; Timer.cpp : #include "Timer.h" Timer::Timer() {} Timer::~Timer() {} void Timer::armerTempo(unsigned long int duree) { m_fin = clock() + duree * CLOCKS_PER_SEC; } bool Timer::tempsEcoule() { return (clock()<m_fin) ? false:true; }
Je voudrais savoir si il y avait un moyen pour augmenter "la portée" ?
Je vous remercie.
Partager