我有一个带有计时器的 ac# windows 服务,它每 5 分钟执行一次进程。
我不想创建其他进程来每 30 分钟执行一次任务,那么是否可以在同一个计时器 timer_Elapsed 事件中执行该逻辑?任何线索?
非常感谢,
使用2个定时器怎么样?
您可以在每次计时器经过时增加一个变量,当该变量达到 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.
}
好吧,您可以只使用一个计数器并对照6
(30000/5000) 进行检查,并在完成后将其重置为零。
private int counter = 0;
private void TimerCallback()
{
counter++;
if(counter >=6)
{
//Your 30 seconds code here
counter = 0;
}
}