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
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);
​Mais ma boucle de 5000 tours à pris 7.6 seconde.

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.