System.Threading.Timer в C #, похоже, не работает. Он работает очень быстро каждые 3 секунды
Я являюсь объектом таймера. Я хочу, чтобы он запускался каждую минуту. В частности, он должен запуститьOnCallBack
метод и становится неактивным в то время какOnCallBack
метод работает. КогдаOnCallBack
Метод заканчивается, это (OnCallBack
) перезапускает таймер.
Вот что у меня сейчас есть:
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
}
Тем не менее, похоже, не работает. Он работает очень быстро каждые 3 секунды. Даже если если поднять период (1000 * 10). Кажется, это закрывает глаза на1000 * 10
Что я сделал не так?