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

Что я сделал не так?

Ответы на вопрос(5)

Ваш ответ на вопрос