J'ai une fonction qui doit envoyer un signal après un intervalle spécifique, précis à 1 milliseconde (ms). Mais il semble que mon timer ait besoin d'un peu plus de temps qu'il ne devrait, c'est-à-dire que je passe à la fonction un TimeSpan de 20 ms mais le timer a besoin de 30 ms par tic. J'ai maintenant écrit un timer moi-même avec un Stopwatch
mais je me demande toujours pourquoi le timer a besoin de plus de temps pour s'exécuter ?
private System.Timers.Timer timer;
private void startResetTimer(TimeSpan time)
{
timer = new System.Timers.Timer(time.TotalMilliseconds);
timer.Elapsed += OnTimedEvent;
timer.AutoReset = true;
timer.Enabled = true;
}
private void OnTimedEvent(Object source, ElapsedEventArgs e)
{
if (!waitForTimerReset.Set())
Console.WriteLine("Could not wake up any threads!");
}
Dans mon code, la seule chose que le timer exécute est la fonction waitForTimerReset.Set()
Méthode qui permet aux Threads de continuer après qu'ils aient été arrêtés par un ManualResetEvent
ce qui signifie que cet appel ne devrait pas prendre 10 ms.