我有一个带有计时器的c#windows服务,每5分钟执行一次。
我不想创建其他进程来每30分钟执行一次任务,那么在同一个计时器timer_Elapsed事件中是否可以执行该逻辑?任何线索?
非常感谢,
答案 0 :(得分:2)
如何使用 2 计时器?
答案 1 :(得分: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)
好吧,您可以使用计数器并将其与6
(30000/5000)核对,并在完成时将其重置为零。
private int counter = 0;
private void TimerCallback()
{
counter++;
if(counter >=6)
{
//Your 30 seconds code here
counter = 0;
}
}