每x分钟调用一次方法
我想每5分钟打一个方法。 我该怎么做?
public class Program { static void Main(string[] args) { Console.WriteLine("*** calling MyMethod *** "); Console.ReadLine(); } private MyMethod() { Console.WriteLine("*** Method is executed at {0} ***", DateTime.Now); Console.ReadLine(); } }
var startTimeSpan = TimeSpan.Zero; var periodTimeSpan = TimeSpan.FromMinutes(5); var timer = new System.Threading.Timer((e) => { MyMethod(); }, null, startTimeSpan, periodTimeSpan);
我基于@ asawyer的回答。 他似乎没有收到编译错误,但我们中的一些人。 这是Visual Studio 2010中的C#编译器将接受的一个版本。
var timer = new System.Threading.Timer( e => MyMethod(), null, TimeSpan.Zero, TimeSpan.FromMinutes(5));
使用Timer
。 定时器文件 。
while (true) { Thread.Sleep(60 * 5 * 1000); Console.WriteLine("*** calling MyMethod *** "); MyMethod(); }
在你的类的构造函数中启动一个计时器。 间隔以毫秒为单位,5 * 60秒= 300秒= 300000毫秒。
static void Main(string[] args) { System.Timers.Timer timer = new System.Timers.Timer(); timer.Interval = 300000; timer.Elapsed += timer_Elapsed; timer.Start(); }
然后在timer_Elapsed
事件中调用GetData()
,如下所示:
static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { //YourCode }
使用定时器的例子。
using system.timers; static void Main(string[] args)() { Timer t = new Timer(TimeSpan.FromMinutes(5).TotalMiliseconts); // set the time (5 min in this case) t.AutoReset = true; t.Elapsed += new System.Timers.ElapsedEventHandler(your_method); t.Start(); } // this method calls every 5 min private void your_method(object sender, ElapsedEventArgs e) { Console.WriteLine("..."); }