c# - 有没有一种方法可以在应用程序立即启动时执行 ExecuteEvery5Min 方法,然后每 5 分钟通过计时器执行一次?

标签 c#

我正在使用一个 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/

相关文章:

c# - UriBuilder 无法对 UriBuilder 注册标志进行编码

c# - Android View 状态 : pressed, 已激活、已选择等绑定(bind)。我必须编写自定义绑定(bind)吗?

c# - 继承问题,从继承类的某些数据上获取 NULL

c# - 小Q谈js和sharepoint

c# - 当我键入对象时,使用接口(interface)还是类有什么区别吗?

c# - NHibernate 和 MySql 缺少列异常

c# - 有没有办法使用 Quaternion.FromToRotation 来支持使用一个轴?

c# - 在 ASP.net core mvc 3.1 中的 HtmlHelper 扩展方法中使用 DataAnnotation localizer

c# - 异步等待数据改变

c# - LINQ 聚合函数到当前行