我正在使用一个 Timer
,它每 5 分钟调用一段代码 ExecuteEvery5Min
。
现在我启动控制台应用程序,我必须等待 5 分钟,然后代码 ExecuteEvery5Min
被执行,然后每 5 分钟执行一次....
有没有一种方法可以在应用程序启动时立即执行 ExecuteEvery5Min
代码,然后每 5 分钟通过计时器执行一次?
using (UtilityClass utilityClass = new UtilityClass()) // To dispose after the use
{
while (true) { }
}
public class UtilityClass : IDisposable
{
private readonly System.Timers.Timer _Timer;
public UtilityClass()
{
_Timer = new System.Timers.Timer(TimeSpan.FromMinutes(5).TotalMilliseconds)
{
Enabled = true
};
_Timer.Elapsed += (sender, eventArgs) =>
{
ExecuteEvery5Min();
};
}
private void ExecuteEvery5Min()
{
Console.WriteLine($"Every 5 minute at {DateTime.Now}");
}
public void Dispose()
{
_Timer.Dispose();
}
}
最佳答案
为什么不简单地在计时器之上调用构造函数中的代码(立即拥有它)?
_Timer = new System.Timers.Timer(TimeSpan.FromMinutes(5).TotalMilliseconds)
{
Enabled = true
};
// add this
ExecuteEvery5Min();
_Timer.Elapsed += (sender, eventArgs) =>
{
ExecuteEvery5Min();
};
关于c# - 有没有一种方法可以在应用程序立即启动时执行 ExecuteEvery5Min 方法,然后每 5 分钟通过计时器执行一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55791771/