C# WPF定時器


   最近悟出來一個道理,在這兒分享給大家:學歷代表你的過去,能力代表你的現在,學習代表你的將來。我們都知道計算機技術發展日新月異,速度驚人的快,你我稍不留神,就會被慢慢淘汰!因此:每日不間斷的學習是避免被淘汰的不二法寶。

   當然,題外話說多了,咱進入正題!

   最近在做一個WPF項目,我做的模塊主要是負責查詢。其中一個模塊叫做CALLBACKLIST,中文譯為聯系記錄,既然叫聯系記錄,就少不了打電話,而打電話是手機端的事情。手機端的開發就交給IOS和安卓開發人員,當然,他們所需的服務肯定由我寫啦!這個模塊的主要業務邏輯是這樣的,如下:

   管理員查詢聯系記錄->選擇用戶並將用戶信息插入到臨時表S->手機端(IOS,安卓)定時抓取臨時表S中的數據(主要是顧客姓名,手機號)->手機端撥打用戶電話->手機端將撥打的結果以JSON格式反饋給服務端->服務端處理反饋的數據->服務端定時刷新並顯示聯系結果。

   根據以上需求,服務端需要寫查詢Search功能、插入臨時表Add To S功能、為手機端提供一個抓取臨時數據的服務GetList功能、獲取手機端反饋結果並處理SetCallBackList功能、及WPF頁面定時刷新。

   至於以上的需求及處理方式本博客只講解定時器的開發,如下:

   首先,微軟為WPF定制了一個專門的定時器DispatcherTimer,這句話很重要,省的瞎用!

   其次,我們需要引入命名空間->using System.Windows.Threading;

   創建定時器對象->DispatcherTimer dispatcherTimer = new DispatcherTimer();

   最后設置定時器:

            //定時查詢-定時器
            dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
            dispatcherTimer.Interval = new TimeSpan(0, 0, 60);
            dispatcherTimer.Start();

 

   在上述代碼中,我們EventHandler這個東東叫做定時器回調函數,根據上述的需求,我們要定時刷新聯系記錄結果,說白了就是定時查詢,也就是再執行一次查詢方法而已。

dispatcherTimer.Interval = new TimeSpan(0, 0, 60);->設置定時器的時間間隔。
最后啟動定時器->
dispatcherTimer.Start();
然后寫回調函數如下:
/// <summary>
        /// 定時器回調函數
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dispatcherTimer_Tick(object sender, EventArgs e)
        {
           DoSearch();//執行查詢
         }

    至此:WPF定時器就完成了!

    2016-10-25  補充說明:定時器Start()以后,也就是啟動以后,要記得及時關上!否則會一直執行下去的!

 @陳卧龍的博客

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM