【问题标题】:Executing methods at a specified time在指定时间执行方法
【发布时间】:2019-04-15 13:45:05
【问题描述】:

我想在指定时间执行方法,例如在五分钟内执行某个方法。我不需要间隔(每天或每小时)执行一次,只需一次。 我用 asp.net core 2.1 制作 web 应用程序。我希望能够添加例如3个工作要做 1) 5 分钟内 2) 10 分钟内 3) 在 15 分钟内 并期望在时间结束时执行。 我怎样才能以简单的方式做到这一点?

【问题讨论】:

    标签: .net-core time


    【解决方案1】:

    为什么不使用计时器。简单易行...

    private System.Timers.Timer myTimer;
    private int minutes = Settings.Default.5MinuteTimer;
    
    private void SetTimer()
    {
        myTimer= new System.Timers.Timer(1000 * 60 * minutes);          
        myTimer.Elapsed += OnTimedEvent;
        myTimer.AutoReset = false; //Fire event only once.
        myTimer.Enabled = true;
    }
    
    private void OnTimedEvent(Object source, ElapsedEventArgs e)
    {
        MyMethod();
    }
    
    private MyMethod()
    {
        myTimer.Stop(); //Calling stop will also Dispose the timer.
        // Other code.
    }
    

    【讨论】:

    • 好的,但如果我想知道还剩多少时间?有没有简单的方法来检查这个。例如我计划在 5 小时内完成一些工作。 3小时后,我想知道我还要等多久。我认为我必须自己做,但也许你可以帮助我
    • @Indigo_heart 看看这个答案...stackoverflow.com/a/2278550/229930
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 2012-10-28
    • 2022-01-16
    • 2014-08-06
    • 1970-01-01
    • 2015-08-10
    相关资源
    最近更新 更多