使静态对象方法以设定的间隔调用自身

本文关键字:调用 对象 静态 方法 | 更新日期: 2023-09-27 18:18:08

假设我有一个静态对象,看起来像这样:

public static class TheStaticObject
{    
   public static void InitializeTheObject()
   {
       // equivalent of javascript setInterval(RunEvery10Minutes, 600000);
   }
   public static void RunEvery10Minutes() {   } 
}

Application_Start方法中,我调用TheObject.InitializeTheObject(),在那一点上,我希望静态对象每10分钟连续调用其中的一个方法。在JavaScript中,我会使用setInterval,但我该如何在c#中做到这一点?

使静态对象方法以设定的间隔调用自身

这是你怎么做的,但是…将这些代码放在Application_Start中是一个坏主意。你应该创建一个单独的Windows服务,不运行在IIS应用池。

using System;
using System.Timers;
public static class TheStaticObject
{
    private static Timer _timer;
    public static void InitializeTheObject()
    {
        _timer = new Timer
        {
            AutoReset = true,
            Interval = TimeSpan.FromMinutes(10).TotalMilliseconds
        };
        _timer.Elapsed += RunEvery10Minutes;
        _timer.Start();
    }
    public static void RunEvery10Minutes(object sender, ElapsedEventArgs e)
    {
        // do something
    }
}