C# 定时器Timer的实例介绍

互联网 17-6-23
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的实例介绍的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 定时器
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:C# Md5Hash的用法及实例

相关资讯