110,570
社区成员
发帖
与我相关
我的任务
分享
foreach (XmlNode xnode in nodelist)
{
System.Timers.Timer taskTime= new System.Timers.Timer();
//动态创建的定时器,用来分别执行不同的任务,当然 每个定时器的间隔时间也是动态的
taskTime.Interval = ts.Days * (24 * 60 * 60) + ts.Hours * 60 * 60 + ts.Minutes * 60;
taskTime.Enabled = true;
taskTime.AutoReset = true;
taskTime.Elapsed += new System.Timers.ElapsedEventHandler(taskTime_Elapsed);
taskTime.Start();
}
//间隔时间执行的事件
void taskTime_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
System.Timers.Timer t = (System.Timers.Timer)sender;
t.Stop();
/////////业务需求
/////////业务需求
//业务执行完成之后 我需要把这个定时器的间隔时间重新设置
t.AutoReset = true;
t.Interval = ts.Days * (24 * 60 * 60) + ts.Hours * 60 * 60 + ts.Minutes * 60;
t.Enabled = true;
t.Start();
}
System.Threading.Timer timer = new System.Thread.Timer(
MyTimerCallback, //定时回调函数
null,
Timeout.Infinite,
10*60*1000);
void MyTimerCallback(object o)
{
// (要定时执行的代码写在这里)
timer.Change(Timeout.Infinite, 60*10 *1000); //<--每10分钟启动一次! ,可以改变下次启动时间
}
重新设置时间可以用Timer.Change方法,不用stop在start