0

我有一个带有计时器的 ac# windows 服务,它每 5 分钟执行一次进程。

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

非常感谢,

4

3 回答 3

2

使用2个定时器怎么样? 

于 2013-11-04T20:32:00.683 回答
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.
}
于 2013-11-04T20:26:44.950 回答
0

好吧,您可以只使用一个计数器并对照6(30000/5000) 进行检查,并在完成后将其重置为零。

private int counter = 0;
private void TimerCallback()
{
    counter++;
    if(counter >=6)
    {
        //Your 30 seconds code here
        counter = 0;
    }
}
于 2013-11-04T20:25:28.123 回答