欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Winform基于多線程實現(xiàn)每隔1分鐘執(zhí)行一段代碼

 更新時間:2014年10月22日 09:06:26   投稿:shichen2014  
這篇文章主要介紹了Winform基于多線程實現(xiàn)每隔1分鐘執(zhí)行一段代碼的方法,設計線程的操作及時間函數(shù)的用法,需要的朋友可以參考下

本文實例講述了Winform基于多線程實現(xiàn)每隔1分鐘執(zhí)行一段代碼的方法,分享給大家供大家參考。具體實現(xiàn)方法如下:

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)
            { }
        }

    }
}

2.在主線程部分引用此類。在需要執(zhí)行的event加入:

復制代碼 代碼如下:
private const int _Interval =40000;
        private MyTimer _Timer;

  private void Form1_Load(object sender, EventArgs e)
        {

            _Timer = new MyTimer();
            _Timer.Interval = _Interval;
            _Timer.Start(); //開始
            _Timer.OnElapsed += Timer_OnElapsed;
        }
 void Timer_OnElapsed()
        {
            Invoke(new Action(() => 加入需要執(zhí)行的event));
            //to do
        }

private void Form1_FormClosed(object sender, FormClosedEventArgs e)

{

//記得需要結束

if (_Timer != null)

{

_Timer.OnElapsed -= Timer_OnElapsed;

_Timer.Stop();

}

}

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • c# 如何用組合替代繼承

    c# 如何用組合替代繼承

    這篇文章主要介紹了c# 如何用組合替代繼承,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-02-02
  • 詳解C#中SqlParameter的作用與用法

    詳解C#中SqlParameter的作用與用法

    本篇文章主要介紹了C#中SqlParameter的作用與用法,因為通過SQL語句的方式,有時候存在腳本注入的危險,所以在大多數(shù)情況下不建議用拼接SQL語句字符串方式,希望通過SqlParameter實現(xiàn)來實現(xiàn)對數(shù)據的操作。
    2016-12-12
  • C# javascript 讀寫Cookie的方法

    C# javascript 讀寫Cookie的方法

    這篇文章介紹了C# javascript 讀寫Cookie的方法,有需要的朋友可以參考一下
    2013-10-10
  • C#中Serializable序列化實例詳解

    C#中Serializable序列化實例詳解

    這篇文章主要介紹了C#中Serializable序列化,以實例形式詳細講述了系列化的技術及各種序列化方法,非常具有實用價值,需要的朋友可以參考下
    2014-11-11
  • C# WinForm程序完全退出的問題解決

    C# WinForm程序完全退出的問題解決

    C# WinForm程序完全退出的問題解決,需要的朋友可以參考一下
    2013-05-05
  • 在C#中List集合使用First()方法獲取第一個元素的操作

    在C#中List集合使用First()方法獲取第一個元素的操作

    這篇文章主要介紹了在C#中List集合使用First()方法獲取第一個元素的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • C#圖像對比度調整的方法

    C#圖像對比度調整的方法

    這篇文章主要介紹了C#圖像對比度調整的方法,涉及C#實現(xiàn)圖像對比度操作的相關技巧,需要的朋友可以參考下
    2015-04-04
  • C#如何連接服務器共享文件夾

    C#如何連接服務器共享文件夾

    這篇文章主要為大家詳細介紹了C#如何連接服務器共享文件夾,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • c#網絡喚醒功能實現(xiàn)

    c#網絡喚醒功能實現(xiàn)

    網絡喚醒實現(xiàn)了對網絡的集中管理,即在任何時刻,網管中心的IT管理人員可以經由網絡遠程喚醒一臺處于休眠或關機狀態(tài)的計算機,下面使用c#實現(xiàn)網絡喚醒功能
    2014-01-01
  • 利用C#版OpenCV實現(xiàn)圓心求取實例代碼

    利用C#版OpenCV實現(xiàn)圓心求取實例代碼

    這篇文章主要給大家介紹了關于如何利用C#版OpenCV實現(xiàn)圓心求取的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05

最新評論