2013-11-04 127 views
0

我有一个c#windows服务,每5分钟执行一个进程。定时器有两个执行任务的时间间隔

我不想创建其他进程每隔30分钟执行一次任务,那么是否有可能在同一个timer_Elapsed事件中执行该逻辑?任何线索?

非常感谢,

+3

我不是100%确定你为什么不使用计划任务。 –

+0

保持计数,然后每6次执行一次任务B并重置计数? –

回答

0

嗯,你可以只使用一个计数器,并检查它反对6(5000分之30000),完成后重新回零。

private int counter = 0; 
private void TimerCallback() 
{ 
    counter++; 
    if(counter >=6) 
    { 
     //Your 30 seconds code here 
     counter = 0; 
    } 
} 
1

你可以每次增加一个变量的计时器到期,并且当该变量达到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. 
} 
2

如何使用计时器?  

+0

+1这是用定时器完成的最干净的方法。 –

+0

这是非愚蠢的做法! – spender

相关问题