Winform基于多线程实现每隔1分钟执行一段代码

本文实例讲述了Winform基于多线程实现每隔1分钟执行一段代码的方法,分享给大家供大家参考。具体实现方法如下:

1.定义相关的类Timer.cs,代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading;

namespace SMIS2013.DSS.Monitor

{

    public class MyTimer

    {

        public delegate void Elapsed(); //定义委托 

        public event Elapsed OnElapsed;

        private long _Interval = 1000;

        public long Interval

        {

            get { return _Interval; }

            set { _Interval = value; }

        }

        private bool _IsStart = false;

        private Thread _TimerThread;

        public void Start()

        {

            if (_IsStart)

                return;

            _IsStart = true;

            _TimerThread = new Thread(new ThreadStart(DoTimer));

            _TimerThread.Start();

        }

        public void Stop()

        {

            try

            {

                if (!_IsStart)

                    return;

                _IsStart = false;

                _TimerThread.Abort();

            }

            catch (Exception e)

            { }

        }

        private void DoTimer()

        {

            try

            {

                int last = Environment.TickCount;

                while (_IsStart)

                {

                    if (Environment.TickCount - last > _Interval)

                    {

                        if (OnElapsed != null)

                            OnElapsed();

                        last = Environment.TickCount;

                      

                    }

                    Thread.Sleep(100);

                }

            }

            catch (Exception e)

            { }

        }

    }

}

以上是 Winform基于多线程实现每隔1分钟执行一段代码 的全部内容, 来源链接: utcz.com/z/357526.html

回到顶部