我有一个c#windows服务,每5分钟执行一个进程。定时器有两个执行任务的时间间隔
我不想创建其他进程每隔30分钟执行一次任务,那么是否有可能在同一个timer_Elapsed事件中执行该逻辑?任何线索?
非常感谢,
我有一个c#windows服务,每5分钟执行一个进程。定时器有两个执行任务的时间间隔
我不想创建其他进程每隔30分钟执行一次任务,那么是否有可能在同一个timer_Elapsed事件中执行该逻辑?任何线索?
非常感谢,
嗯,你可以只使用一个计数器,并检查它反对6
(5000分之30000),完成后重新回零。
private int counter = 0;
private void TimerCallback()
{
counter++;
if(counter >=6)
{
//Your 30 seconds code here
counter = 0;
}
}
你可以每次增加一个变量的计时器到期,并且当该变量达到6,你把它重置为0,并执行你的“一次每30分钟还”代码。另外,据我所知,创建一个新的(winform)定时器并不会创建一个新的线程。
int TimerVariable=0;
TimerEvent(object sender,eventargs e)
{
TimerVariable++;
if(TimverVariable>=6)
{
//Execute the once every 30 min code
}
//Execute the once every 5 min code.
}
我不是100%确定你为什么不使用计划任务。 –
保持计数,然后每6次执行一次任务B并重置计数? –