定时器是如何在.net中工作的
本文关键字:工作 net 定时器 | 更新日期: 2023-09-27 17:52:55
我正在用c#编写一个控制台应用程序,我的代码是这样的:
while(true)
{
//do some stuff
System.Threading.Thread.Sleep(60000)
}
我注意到我的应用程序在"睡眠"时的内存使用量大约是14k。但是后来我参考了System.Windows.Forms并使用了计时器,我注意到内存使用量大幅下降。
我的问题是,在不使用那么多内存的情况下,每隔几秒钟执行一次的正确方法是什么?
你应该使用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框架类库中定时器类的比较