我有一个计时器对象。我希望它每分钟运行一次。具体来说,它应该运行一个OnCallBack
方法并在OnCallBack
方法运行时变得不活动。一旦一个OnCallBack
方法完成,它(a 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
我做错了什么?