Bonjour,
J'ai créé un thread dans lequel je fais des calculs lié au temps comme un PID.
Je cherche une idée qui me permettrait de faire des boucles d'environ 1ms, j'ai essayé thread.sleep(1) mais c'est un désastre.
J'ai essayé cette solution aussi
Mais ma boucle de 5000 tours à pris 7.6 seconde.
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 UInt16 i = 0; DateTime _Start = DateTime.Now; DateTime _New = DateTime.Now; do { while ((DateTime.Now - _New)< TimeSpan.FromMilliseconds(1)) ; _New = DateTime.Now; i++; //Thread.Sleep(1); } while (i < 5000); TimeSpan _Span = DateTime.Now.Subtract(_Start); Console.WriteLine("dt {0}", _Span);
Je pensais à la solution d'intégrer un coefficient Delta T à chaque boucle au lieu d'une simple incrémentation. Mais il faut que je me rapproche de la ms pour ne pas trop dériver.
Si quelqu'un a une idée je suis preneur.
Partager