脚本宝典收集整理的这篇文章主要介绍了C# 定时器Timer的实例介绍,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
static void Main(string[] args) { #region 定时器 TimerDemo td = new TimerDemo("TimerDemo", 1000); td.Enabled = true; td.TickEvent += testHandler; Thread timer = new Thread(td.Run); timer.Start(); #endregion Console.ReadLine(); } /// <summary> /// 测试用事件 /// </summary> static void TestHandler() { Console.WrITeLine(DateTime.Now.ToLongTimeString()); }
public class TimerDemo { //线程名 string _ThreadName; public string ThreadName { get { return _ThreadName; } PRivate set { _ThreadName = value; } } //时间间隔 int _Timeinterval; public int TimeInterval { get { return _TimeInterval; } set { _TimeInterval = value; } } //当前计时器是否启用 true:启用 false:不启用 bool _Enabled; public bool Enabled { get { return _Enabled; } set { _Enabled = value; } } //每隔一段时间需要运行的事件 public delegate void TickEventHandler(); public event TickEventHandler TickEvent; /// <summary> /// 建立一个计时器(构造函数) /// </summary> /// <param name="ThreadName">线程名</param> /// <param name="TimeInterval">时间间隔</param> public TimerDemo(string ThreadName, int TimeInterval = int.MaxValue) { this.ThreadName = ThreadName; this.TimeInterval = TimeInterval; this.Enabled = false; } /// <summary> /// 定期执行事件 /// </summary> public void Run() { while (true) { //如果当前计时器并未启用,则每隔一段时间检测是否被启用 if (!this.Enabled) { Thread.Sleep(100); continue; } //触发事件TickEvent if (TickEvent != null) { TickEvent(); } //休眠一定的时间,等待下一个循环 Thread.Sleep(TimeInterval % 100); for (int temp = 0; temp < TimeInterval / 100; temp++) { Thread.Sleep(100); if (!this.Enabled) { break; } } } } }
以上就是C# 定时器Timer的实例介绍的详细内容,更多请关注脚本宝典其它相关文章!
以上是脚本宝典为你收集整理的C# 定时器Timer的实例介绍全部内容,希望文章能够帮你解决C# 定时器Timer的实例介绍所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。