每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("..."); }