每隔几秒重复一次function

我想从程序打开的那一刻起重复一个函数,直到每隔几秒closures一次。 什么是最好的方式在C#中做到这一点?

使用一个计时器。 有3种基本types,每种都适合不同的目的。

  • System.Windows.Forms.Timer

仅在Windows窗体应用程序中使用。 该定时器作为消息循环的一部分进行处理,因此可以在高负载下冻结定时器。

  • System.Timers.Timer

当你需要同步时,使用这个。 这意味着tick事件将在启动定时器的线程上运行,允许您在没有太多麻烦的情况下执行GUI操作。

  • System.Threading.Timer

这是最高性能的计时器,它在后台线程上触发滴答。 这使您可以在后台执行操作而不冻结GUI或主线程。

对于大多数情况下,我推荐System.Timers.Timer。

为此System.Timers.Timer效果最好

 // Create a timer myTimer = new System.Timers.Timer(); // Tell the timer what to do when it elapses myTimer.Elapsed += new ElapsedEventHandler(myEvent); // Set it to go off every five seconds myTimer.Interval = 5000; // And start it myTimer.Enabled = true; // Implement a call with the right signature for events going off private void myEvent(object source, ElapsedEventArgs e) { } 

有关详细信息,请参阅Timer类(.NET 4.6和4.5)

使用一个计时器 。 请记住,.NET带有许多不同的定时器。 本文涵盖了这些差异。