创建定时器类
using System.Timers;
namespace TimeSpace
{
public class SetTimer
{
public Timer aTimer = null;
/// <summary>
/// 设置定时器函数
/// </summary>
public delegate void TimerWork(object source, ElapsedEventArgs e);
/// <summary>
/// 每隔 interval/1000 秒 发送控制器心跳信号
/// </summary>
/// <param name="interval">时间间隔,单位是毫秒</param>
/// <param name="work">定义的需要触发的函数</param>
public SetTimer(int interval, TimerWork work)
{
// 创建一个定时器
aTimer = new Timer(interval);
// 绑定触发事件.
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(work);
aTimer.AutoReset = true; // 让计时器触发重复事件(true是默认值)
aTimer.Enabled = true; // 启动 timer,与aTimer.Start()同
}
/// <summary>
/// 停止计时
/// </summary>
public void Stop()
{
if (aTimer != null)
{
aTimer.Enabled = false; // 停止计时
aTimer.Close();
aTimer.Dispose(); // 释放资源
aTimer = null; // 设为空值
}
}
}
}
调用
//设置定时器5S执行一次
SetTimer timer = new SetTimer(5000, async (source, e) =>
{
//自己的业务逻辑
if (condition)//condition为定时器停止条件
{
//停止定时器并释放资源
((System.Timers.Timer)source).Stop();
((System.Timers.Timer)source).Close();
((System.Timers.Timer)source).Dispose();
}
});