新聞中心

        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;



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 彰武县| 高雄市| 屏东市| 灯塔市| 彰武县| 双柏县| 奉贤区| 西贡区| 松江区| 远安县| 荆门市| 汨罗市| 汶上县| 仙桃市| 大关县| 靖远县| 靖安县| 福安市| 佛冈县| 资兴市| 咸丰县| 辽中县| 武邑县| 合水县| 德昌县| 延吉市| 得荣县| 大宁县| 临桂县| 华池县| 桐乡市| 卓尼县| 建平县| 拉孜县| 阿瓦提县| 乌鲁木齐县| 曲水县| 龙岩市| 沐川县| 台南市| 杭州市|