C# · 12月 21, 2021

[C#]System.Timers.Timer

摘要<p style="margin-left: 30px;">在.Net中有几种定时器,最喜欢用的是System.Timers命名空间下的定时器,使用起来比较简单,作为定时任务,有Quartz.net,但有时候,一个非常简单的任务,不想引入这个定时任务框架,用Timer完全可以满足要求。

一个例子<p style="margin-left: 30px;">每一秒在控制台上打印时间。

Main( timer = += timer.AutoReset </span>= <span style=”color: #0000ff;”&gt;true</span><span style=”color: #000000;”&gt;; timer.Enabled </span>= <span style=”color: #0000ff;”&gt;true</span><span style=”color: #000000;”&gt;; timer.Interval </span>= <span style=”color: #800080;”&gt;1000</span><span style=”color: #000000;”&gt;; Console.Read(); } </span><span style=”color: #0000ff;”&gt;private</span> <span style=”color: #0000ff;”&gt;static</span> <span style=”color: #0000ff;”&gt;void</span> timer_Elapsed(<span style=”color: #0000ff;”&gt;object</span><span style=”color: #000000;”&gt; sender,Sy<a href=”https://www.jb51.cc/tag/stem/” target=”_blank” class=”keywords”>stem</a>.Timers.ElapsedEventArgs e) { Console.WriteLine(e.SignalTime.ToString()); }}</span></pre>

<p style="margin-left: 30px;"> timer.AutoReset = true;注意,AutoReset属性,如果你希望到时间了,不停的执行Elapsed事件,要将其设置为true。它的作用类似js中的setInterval方法,如果为false,类似于js中的setTimerout方法,只执行一次。

<p style="margin-left: 30px;">

<p style="margin-left: 30px;">所以在使用timer的时候,你要考虑到业务需求,是执行一次,还是不停的执行。