Bonjour a tous
Alors voila, je souhaiterai avoir une base de temps précise (à la micro seconde prés), et utilisable quand je veux dans mon code.
J'avais pensé faire ceci:
Bon c'est bête comme chou:Code:
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 class ThreadChrono(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.go = 1 self.jour =0 self.heure =0 self.minute =0 self.seconde =0 self.milli =0 self.micro =0 def run(self): while self.go==1: self.milli=self.milli+1 if self.micro==1000: self.milli=self.milli+1 self.micro==0 if self.milli==1000: self.seconde=self.seconde+1 self.milli=0 if self.seconde==60: self.minute=self.minute+1 self.seconde=0 if self.minute==60: self.heure=self.heure+1 self.minute=0 if self.heure==24: self.jour=self.jour+1 self.heure=0 time.sleep(0.001) def WhatTime(self): return "%s jour, %sh %sm %ss %sm %su "%(self.jour,self.heure,self.minute,self.seconde,self.milli,self.micro)
j'attends une micro seconde avec avec la fonction time.sleep(), puis j'incrémente mon compteur de micro-seconde. Quand celui ci atteint 1000, il est remis à 0 et le compteur des millisecondes est incrémenté de "1" et ainsi de suite.
La méthode WhatTime permet de récupérer l'état du compteur et le tout est placé dans un thread afin que ca puisse tourner en parallele du reste de l'appli
Le code fonctionne et ca tourne...Le seul probleme c'est que c'est clairmement pas assez rapide: cela génére une horloge presque 2 fois trop lente...
Quelqu'un a une idée pour un truc plus fonctionnel/efficace/élégant...etc?
Merciii
julien