新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > Timer定時器的設計方法

        Timer定時器的設計方法

        作者: 時間:2018-09-04 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/201809/388353.htm

          /**////

          /// 委托

          ///

          private TimerCallback timerDelegate;

          /**////

          /// 靜態實例

          ///

          private static readonly PaperManager self = new PaperManager();

          /**////

          /// 構造函數

          ///

          public PaperManager()

          {

          timerDelegate = new TimerCallback(CheckStatus);

          }

          /**////

          ///

          ///

          ///

          public static PaperManager getInstance()

          {

          return self;

          }

          /**////

          /// 設置啟動時間間隔

          ///

          ///

          ///小時

          ///分鐘

          ///

          ///毫秒

          public void setDueTime(int days, int hours, int minutes, int seconds, int milisecond)

          {

          dueTime = new TimeSpan(days, hours, minutes, seconds, milisecond);

          }

          /**////

          /// 設置回調時間間隔

          ///

          ///

          ///小時

          ///分鐘

          ///

          ///毫秒

          public void setPeriod(int days, int hours, int minutes, int seconds, int milisecond)

          {

          period = new TimeSpan(days, hours, minutes, seconds, milisecond);

          }

          /**////

          /// 開始

          ///

          public void Start()

          {

          AutoResetEvent autoEvent = new AutoResetEvent(false);

          dueTime = TimeSpan.FromSeconds(0);

          period = TimeSpan.FromSeconds(10);

          iTimer = new Timer(timerDelegate, autoEvent, dueTime, period);

          autoEvent.WaitOne(5000, false);

          iTimer.Change(dueTime, period);

          }

          /**////

          /// 停止

          ///

          public void Stop()

          {

          iTimer.Dispose();

          }

          /**////

          /// 執行一次

          ///

          public void ExcuteOneTime()

          {

          if (iTimer != null)

          {

          iTimer.Dispose();

          }

          //如果 period 為零 (0) 或 -1 毫秒,而且 dueTime 為正,則只會調用一次 callback;

          //計時器的定期行為將被禁用,但通過使用 Change 方法可以重新啟用該行為。

          setDueTime(0, 0, 0, 0, 1);

          setPeriod(0, 0, 0, 0, -1);

          AutoResetEvent autoEvent = new AutoResetEvent(false);

          iTimer = new Timer(timerDelegate, autoEvent, dueTime, period);

          autoEvent.WaitOne(5000, false);

          iTimer.Change(dueTime, period);

          }

          /**////

          /// 行為

          ///

          ///

          public void CheckStatus(object nObject)

          {

          AutoResetEvent autoEvent = (AutoResetEvent)nObject;



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 蛟河市| 金川县| 八宿县| 宁陵县| 曲麻莱县| 多伦县| 绥棱县| 周宁县| 三亚市| 沙雅县| 简阳市| 南木林县| 金川县| 广西| 汉中市| 汾阳市| 鲜城| 新化县| 娄底市| 南平市| 陆川县| 寿宁县| 阳谷县| 周至县| 句容市| 洛川县| 阿尔山市| 新竹市| 天峨县| 阿拉善左旗| 会昌县| 离岛区| 瑞金市| 临西县| 嘉善县| 聊城市| 嘉祥县| 湖北省| 普定县| 米林县| 罗定市|