using System;
using System.Threading;
using System.Timers;
using Timer = System.Timers.Timer;
namespace ConsoleApplication1
{
class Program
{
private static Timer timer = new Timer();
static void Main(string[] args)
{
timer.Interval = 10000;
timer.Elapsed += Print;
timer.Start();
Thread thread = new Thread(NewThread);
thread.Start();
Console.Read();
}
private static void NewThread()
{
Console.WriteLine("进入线程,开始睡15S" + DateTime.Now.ToLocalTime());
Thread.Sleep(15000);
Console.WriteLine("145 之后,将Interval置为13S,注意看下次执行时间" + DateTime.Now.ToLocalTime());
timer.Interval = 13000;
}
private static void Print(object sender, ElapsedEventArgs e)
{
Console.WriteLine(DateTime.Now.ToLocalTime());
}
}
}
Timer等待下一次事件执行,比如还有8S执行。
但此时如果将此Timer的interval改变为15S,则从此刻起,15S之后事件执行。