解析.NET中几种Timer的使用
在.NET平台下,有多种Timer,包括System.Timers.Timer、System.Threading.Timer等。本文将对这些Timer进行详细讲解,让您可以选择最适合您需求的Timer进行使用。
System.Timers.Timer
System.Timers.Timer是一个基于事件的Timer,可以在指定的时间周期事件来触发。其主要包含以下属性:
- AutoReset:是否自动重置。
- Enabled:是否启用。
- Interval:时间间隔,单位为毫秒。
System.Timers.Timer以Elapsed事件作为触发器。每次计时器完成一次循环,就会引发Elapsed事件。
using System;
using System.Timers;
public class Example
{
private static System.Timers.Timer aTimer;
public static void Main()
{
aTimer = new System.Timers.Timer(1000); // 执行时间间隔为1000ms
aTimer.Elapsed += OnTimedEvent;
aTimer.AutoReset = true;
aTimer.Enabled = true;
Console.WriteLine("Press the Enter key to exit the program.");
Console.ReadLine();
}
private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}",
e.SignalTime);
}
}
System.Threading.Timer
System.Threading.Timer是一种基于线程池的Timer,可以自动执行代码。它以Callback委托作为触发器,每次计时器到期时,就会运行Callback并把Timer作为参数传递给它。
using System;
using System.Threading;
public class Example
{
private static Timer aTimer;
public static void Main()
{
aTimer = new Timer(new TimerCallback(OnTimedEvent), null, 1000, 1000); // 执行时间间隔为1000ms
Console.WriteLine("Press the Enter key to exit the program.");
Console.ReadLine();
}
private static void OnTimedEvent(Object source)
{
Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}",
DateTime.Now);
}
}
以上就是.NET平台下的两种Timer的示例,如果您有使用Timer的需求,可以参考以上代码根据自己的需求进行灵活的调整。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解析.NET中几种Timer的使用 - Python技术站