System.Threading.Timer w C # wydaje się nie działać. Działa bardzo szybko co 3 sekundy

Mam obiekt timera. Chcę, żeby była uruchamiana co minutę. W szczególności powinien uruchomićOnCallBack metoda i staje się nieaktywna, gdy aOnCallBack metoda jest uruchomiona. RazOnCallBack metoda kończy, to (aOnCallBack) restartuje timer.

Oto, co mam teraz:

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
}

Wydaje się jednak, że nie działa. Działa bardzo szybko co 3 sekundy. Nawet jeśli podniesiesz okres (1000 * 10). Wygląda na to, że przymyka oko1000 * 10

Co zrobiłem źle?

questionAnswers(5)

yourAnswerToTheQuestion