• 技术文章 >后端开发 >C#.Net教程

    C# 定时器Timer的实例介绍

    零下一度零下一度2017-06-23 16:13:42原创2372
    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;
                        }
                    }
                }
            }
        }

      

    php入门到就业线上直播课:查看学习

    以上就是C# 定时器Timer的实例介绍的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:csharp Timer .net 定时器
    上一篇:C# Md5Hash的用法及实例 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• c语言中关键字有多少个• 解决asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误• asp.net 图片验证码的HtmlHelper• ASP.NET使用Ajax如何返回Json对象的方法具体介绍• 应用绝对路径与相对路径
    1/1

    PHP中文网