几秒钟重复一次函数

我想从程序打开的那一刻开始重复一个功能,直到每隔几秒钟关闭一次。用C#做到这一点的最佳方法是什么?

wonea asked 2020-01-13T07:13:17Z
3个解决方案
78 votes

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

  • System.Windows.Forms.Timer

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

  • 系统计时器

需要同步时,请使用此同步。 这意味着滴答事件将在启动计时器的线程上运行,从而使您可以轻松执行GUI操作。

  • System.Threading.Timer

这是功能最强大的计时器,它会在后台线程上触发刻度线。 这使您可以在后台执行操作,而无需冻结GUI或主线程。

对于大多数情况,我建议使用System.Timers.Timer。

Kendall Frey answered 2020-01-13T07:14:07Z
42 votes

为此,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) { }

有关详细信息,请参见计时器类(.NET 4.6和4.5)。

IvoTops answered 2020-01-13T07:14:31Z
11 votes

使用计时器。 请记住,.NET带有许多不同的计时器。 本文介绍了差异。

Brian Rasmussen answered 2020-01-13T07:14:51Z
translate from https://stackoverflow.com:/questions/11296897/repeating-a-function-every-few-seconds