System.Threading.Timer en C # parece no estar funcionando. Corre muy rápido cada 3 segundos.
Tengo un objeto temporizador. Quiero que se ejecute cada minuto. Específicamente, debe ejecutar unOnCallBack
Método y se inactiva mientras que unaOnCallBack
El método se está ejecutando. Una vezOnCallBack
El método termina, seOnCallBack
) reinicia un temporizador.
Aquí está lo que tengo ahora:
private static Timer timer;
private static void Main()
{
timer = new Timer(_ => OnCallBack(), null, 0, 1000 * 10); //every 10 seconds
Console.ReadLine();
}
private static void OnCallBack()
{
timer.Change(Timeout.Infinite, Timeout.Infinite); //stops the timer
Thread.Sleep(3000); //doing some long operation
timer.Change(0, 1000 * 10); //restarts the timer
}
Sin embargo, parece que no está funcionando. Se ejecuta muy rápido cada 3 segundos. Incluso cuando si aumenta un período (1000 * 10). Parece que hace la vista gorda a1000 * 10
¿Qué hice mal?