C# Timer类(计时器)应用范例
在C#中,System.Timers.Timer类是用于创建基于时间的计时器的类,在设定的间隔之后生成事件,带有生成重复事件的选项。
以下是一个使用System.Timers.Timer类的基本示例:
using System;
using System.Timers;
namespace ConsoleApp_TimerDemo
{
internal class Program
{
private static Timer aTimer;
static void Main(string[] args)
{
// 实例化一个 System.Timers.Timer 计时器对象,每秒(1000毫秒)触发一次 Elapsed 事件
aTimer = new System.Timers.Timer(1000);
// Hook up the Elapsed event for the timer.
aTimer.Elapsed += OnTimedEvent;
// 设置 Timer 的自动重置属性为 true,这样它会一直运行,除非你停止它
aTimer.AutoReset = true;
// 开始计时器
aTimer.Enabled = true;
Console.WriteLine("按下 Enter键 结束...");
Console.ReadLine();
}
private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
Console.WriteLine("在 {0:HH:mm:ss.fff} 触发了一个事件.", e.SignalTime);
}
}
}
在这个示例中,我们创建了一个每秒触发一次的计时器,并注册了OnTimedEvent方法作为Elapsed事件的处理器。OnTimedEvent方法会在每次计时器触发时被调用,并输出当前时间。当用户按下Enter键时,程序会结束,计时器也会停止。
注解:组件Timer是基于服务器的计时器,在属性中的毫秒Interval数过后,该计时器在应用程序中引发Elapsed事件。 可以将 对象配置为 Timer 仅引发一次事件,也可以使用 AutoReset 属性 重复引发事件,将 AutoReset 属性值设置为true(默认值即为true),则将定期引发Elapsed事件。
构造函数
Timer() | 初始化 Timer 类的新实例,并将所有属性设置为初始值。 |
Timer(Double) | 初始化 Timer 类的新实例,并将 Interval 属性设置为指定的毫秒数。 |
常用属性
AutoReset | 获取或设置一个布尔值,该值指示 Timer 是否应只引发一次 Elapsed 事件((false) 或重复 (true))。 |
Enabled | 获取或设置一个值,该值指示 Timer 是否应引发 Elapsed 事件。 |
Interval | 获取或设置引发 Elapsed 事件的间隔(以毫秒为单位)。 |
常用方法
Close() | 释放由 Timer 占用的资源。 |
Dispose() | 释放由 Component 使用的所有资源。 (继承自 Component) |
Start() | 通过将 Enabled 设置为 true 开始引发 Elapsed 事件。 |
Stop() | 通过将 Enabled 设置为 false 停止引发 Elapsed 事件。 |
事件
Disposed | 在通过调用 Dispose() 方法释放组件时发生。 (继承自 Component) |
Elapsed | 达到间隔时发生。 |