程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#自界說基於掌握台的Timer實例

C#自界說基於掌握台的Timer實例

編輯:C#入門知識

C#自界說基於掌握台的Timer實例。本站提示廣大學習愛好者:(C#自界說基於掌握台的Timer實例)文章只能為提供參考,不一定能成為您想要的結果。以下是C#自界說基於掌握台的Timer實例正文


本文實例講述了C#自界說基於掌握台的Timer完成辦法。分享給年夜家供年夜家參考。詳細以下:

1、概述

這裡完成了一個自界說類TimerTest,該類可以模仿一個Timer,經由指准時間距離履行某個事宜。

2、TimerTest類

//准時器類
class TimerTest
{
 //線程名
 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 TimerTest(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;
    }
   }
  }
 }
}

3、挪用示例

每1000毫秒輸入以後的時光

/// <summary>
/// 測試用事宜
/// </summary>
static void TestHandler()
{
 //TODO
 Console.WriteLine(DateTime.Now.ToLongTimeString());
}
static void Main(string[] args)
{
 TimerTest tt = new TimerTest("timer_test", 1000);
 tt.Enabled = true;
 tt.TickEvent += TestHandler;
 Thread timer = new Thread(tt.Run);
 timer.Start();
 Console.ReadLine();
}

4、運轉成果

願望本文所述對年夜家的C#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved