C#

System.Timers.Timer

服务器计时器,允许指定在应用程序中引发事件的重复时间间隔。

using System.Timers;
// 在应用程序中生成定期事件
public class Timer : Component, ISupportInitialize {
	public double Interval { get; set; }
	public bool Enabled { get; set; } // 开始/停止引发事件Elapsed

    public Timer();
	public Timer(double interval);
	public void Start();  // 启动Timer
	public void Stop();   // 停止Timer
	public void Close();  // 关闭Timer并释放其占用的资源
	// 释放当前Timer使用的所有资源
	// true:释放托管资源和非托管资源;false:仅释放非托管资源
	protected override void Dispose(bool disposing);
	public event ElapsedEventHandler Elapsed;
}

其中, public delegate void ElapsedEventHandler(object sender, ElapsedEventArgs e);   

使用示例:

// 定时触发OnEventClick函数
System.Timers.Timer MyTimer = new System.Timers.Timer();
MyTimer.Elapsed += OnEventClick;
MyTimer.Interval = 3 * 1000;
MyTimer.Enabled = true;

System.Threading.Timer

线程计时器,允许在线程池线程上执行回调方法。

using System.Timers;
// 提供以指定的时间间隔执行方法的机制
public sealed class Timer : MarshalByRefObject, IDisposable {
	public Timer(TimerCallback callback);
	public Timer(TimerCallback callback, object state, xxx);
	public bool Change(int dueTime, int period);
	public void Dispose();  // 释放当前Timer实例使用的所有资源
	public bool Dispose(WaitHandle notifyObject); // 同时释放信号
}

其中, public delegate void TimerCallback(object state);    

原文地址:https://www.cnblogs.com/wjcx-sqh/p/6049379.html