需求:每分钟循环一次,必须在00秒触发!
两个Timer实现:
timer用来计算距离第一个00秒 的差值 timer只触发一次 autoreset=false;
timer用来60秒一循环
namespace ConsoleApplication1
{
class Program
{
private static System.Timers.Timer aTimer;
private static System.Timers.Timer aTimer1;
public static void Main()
{
Console.WriteLine("atimer开始时间"+DateTime.Now);
aTimer = new System.Timers.Timer((60-DateTime.Now.Second)*1000);
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Enabled =true;
aTimer.AutoReset = false;
Console.WriteLine("按Enter结束程序.");
Console.ReadLine();
}
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
Console.WriteLine("atimer1开始时间" + DateTime.Now);
aTimer1 = new System.Timers.Timer(60000);
aTimer1.Elapsed += new ElapsedEventHandler(OnTimedEvent1);
aTimer1.Enabled = true;
}
private static void OnTimedEvent1(object source, ElapsedEventArgs e)
{
Console.WriteLine("The Elapsed event was raised at {0}", e.SignalTime);
}
}
}