在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 消費電子 > 設(shè)計應(yīng)用 > Timer定時器的設(shè)計方法

            Timer定時器的設(shè)計方法

            作者: 時間:2018-09-04 來源:網(wǎng)絡(luò) 收藏

              在系統(tǒng)開發(fā)過程中經(jīng)常用到定時器進(jìn)行定時處理,比如比較常見的郵件群發(fā)、實時更新論壇的在線人數(shù)、文章數(shù)、點擊率等。 很多情況下,我們不能對某一狀態(tài)或者某一行為進(jìn)行實時監(jiān)控,所以就希望系統(tǒng)能夠?qū)崿F(xiàn)這一功能。通過多線程技術(shù)可以使得定時器的性能更高。

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

              盡管定時器能夠自動處理或者一些批處理操作,但是定時器也給系統(tǒng)帶來一定的安全隱患,特別是當(dāng)定時進(jìn)行的操作出現(xiàn)bug時,如果沒有對Exception做出及時的處理,系統(tǒng)資源將會大大的浪費,嚴(yán)重的情況下,可能導(dǎo)致系統(tǒng)崩潰。因此,對于定時器的使用一定要慎重,至少要保證定時處理的行為出現(xiàn)異常的可能性很小,并在出現(xiàn)Exception的情況下及時處理。

              System.Threading.Timer 是一個非常常用的定時器類,是一個使用回調(diào)方法的計時器,而且由線程池線程服務(wù),簡單且對資源要求不高。

              public Timer (

              TimerCallback callback,

              Object state,

              TimeSpan dueTime,

              TimeSpan period

              )

              參數(shù)

              callback

              一個 TimerCallback 委托,表示要執(zhí)行的方法。

              state

              一個包含回調(diào)方法要使用的信息的對象,或者為 空引用(在 Visual Basic 中為 Nothing)。

              dueTime

              TimeSpan,表示在 callback 參數(shù)調(diào)用它的方法之前延遲的時間量。指定 -1 毫秒以防止啟動計時器。指定零 (0) 以立即啟動計時器。

              period

              在調(diào)用 callback 所引用的方法之間的時間間隔。指定 -1 毫秒可以禁用定期終止。

              方法、原理

              使用 TimerCallback 委托指定希望 Timer 執(zhí)行的方法。計時器委托在構(gòu)造計時器時指定,并且不能更改。此方法不在創(chuàng)建計時器的線程上執(zhí)行,而是在系統(tǒng)提供的 ThreadPool 線程上執(zhí)行。

              創(chuàng)建計時器時,可以指定在第一次執(zhí)行方法之前等待的時間量(截止時間)以及此后的執(zhí)行期間等待的時間量(時間周期)。可以使用 Change 方法更改這些值或禁用計時器。

              當(dāng)不再需要計時器時,請使用 Dispose 方法釋放計時器持有的資源。如果希望在計時器被釋放時接收到信號,請使用接受 WaitHandle 的 Dispose(WaitHandle) 方法重載。計時器已被釋放后,WaitHandle 便終止。

              由計時器執(zhí)行的回調(diào)方法應(yīng)該是可重入的,因為它是在 ThreadPool 線程上調(diào)用的。

              備注:

              在超過 dueTime 以后及此后每隔 period 時間間隔,都會調(diào)用一次 callback 參數(shù)所指定的委托。

              如果 dueTime 為零 (0),則立即調(diào)用 callback。如果 dueTime 是 -1 毫秒,則不會調(diào)用 callback;計時器將被禁用,但通過調(diào)用 Change 方法可以重新啟用計時器。

              如果 period 為零 (0) 或 -1 毫秒,而且 dueTime 為正,則只會調(diào)用一次 callback;計時器的定期行為將被禁用,但通過使用 Change 方法可以重新啟用該行為。

              最簡單的定時器

              using System;

              using System.Threading;

              public class TestTimer

              {

              /**////

              /// 定時器

              ///

              private Timer iTimer;

              /**////

              /// constructor

              ///

              public TestTimer()

              {

              iTimer = new System.Threading.Timer(new TimerCallback(Doing));

              iTimer.Change(TimeSpan.FromMinutes(5), TimeSpan.FromMinutes(5));

              }

              /**////

              ///

              ///

              ///

              public void Doing(object nObject)

              {

              //do something

              }

              }

              一個比較完整的計時器:

              下面是我設(shè)計的一個簡單實例。在一個問卷調(diào)查系統(tǒng)中,每一張問卷都有其終止日期,當(dāng)?shù)竭_(dá)了終止日期時,需要系統(tǒng)自動將其關(guān)閉。這就需要定時器對問卷的狀態(tài)和終止日期進(jìn)行實時監(jiān)控,及時關(guān)閉。這里采用了一個簡單的單件模式來操作、控制定時器。 這里主要的操作包括定時器開始、終止、執(zhí)行一次。

              PaperManager管理類

              /**////

              /// 管理類

              ///

              public class PaperManager

              {

              /**////

              /// 定時器

              ///

              private Timer iTimer;

              /**////

              /// 啟動時間

              ///

              private TimeSpan dueTime;

              /**////

              /// 方法調(diào)用間隔

              ///

              private TimeSpan period;


            上一頁 1 2 3 下一頁

            關(guān)鍵詞:

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉