定时器是如何在.net中工作的

本文关键字:工作 net 定时器 | 更新日期: 2023-09-27 17:52:55

我正在用c#编写一个控制台应用程序,我的代码是这样的:

 while(true)
 {
 //do some stuff
     System.Threading.Thread.Sleep(60000)
 }

我注意到我的应用程序在"睡眠"时的内存使用量大约是14k。但是后来我参考了System.Windows.Forms并使用了计时器,我注意到内存使用量大幅下降。

我的问题是,在不使用那么多内存的情况下,每隔几秒钟执行一次的正确方法是什么?

定时器是如何在.net中工作的

你应该使用system . timer . timer

添加一个方法来处理Elapsed事件并执行所需的代码。在你的例子中:

System.Timers.Timer _timer = new System.Timers.Timer();
_timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
_timer.Interval = 60000;
_timer.Enabled = true;
private static void OnTimedEvent(object source, ElapsedEventArgs e)
{
   // add your code here
}

这是一篇关于两个Timers之间差异的好文章:

  • SO: System.Timers.Timer vs System.Threading.Timer

您需要使用Timer类。

有多个内置定时器(System.Timers.Timer, System.Threading.Timer, System.Windows.Forms.Timer, System.Windows.Threading.DispatcherTimer),这取决于需要使用哪个定时器。

阅读下面的答案,了解应该在哪里使用哪个计时器。

下面是一篇有趣的文章。
.NET框架类库中定时器类的比较