首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当应用程序立即启动时,有什么方法可以执行ExecuteEvery5Min,然后每5分钟通过计时器执行一次吗?

当应用程序立即启动时,有什么方法可以执行ExecuteEvery5Min,然后每5分钟通过计时器执行一次吗?
EN

Stack Overflow用户
提问于 2019-04-22 08:57:44
回答 2查看 56关注 0票数 1

我使用的是一个Timer,它每5分钟调用一段代码ExecuteEvery5Min

现在我启动控制台应用程序,我必须等待5分钟,然后执行ExecuteEvery5Min代码,然后每5分钟执行一次.

是否有一种方法,当应用程序启动并立即代码ExecuteEvery5Min执行,然后通过计时器每5分钟?

代码语言:javascript
复制
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();
    }
}
EN

Stack Overflow用户

发布于 2019-04-22 09:04:10

如果可以的话,您可以使用System.Threading.Timer代替,它有以下构造函数:

代码语言:javascript
复制
public Timer (System.Threading.TimerCallback callback, object state, int dueTime, int period);

引用以下链接:

调用回调之前的延迟时间(以毫秒为单位)。指定“无限”以防止计时器启动。指定0 (0)立即启动定时器。 周期 Int32回调调用之间的时间间隔,以毫秒为单位。指定“无限”可禁用周期性信号。

PS:它是基于回调的,而不是像你现在使用的那样基于事件的。

请参阅:https://learn.microsoft.com/en-us/dotnet/api/system.threading.timer.-ctor?view=netframework-4.8

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55791771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档