使静态对象方法以设定的间隔调用自身
本文关键字:调用 对象 静态 方法 | 更新日期: 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
}
}