最近悟出來一個道理,在這兒分享給大家:學歷代表你的過去,能力代表你的現在,學習代表你的將來。我們都知道計算機技術發展日新月異,速度驚人的快,你我稍不留神,就會被慢慢淘汰!因此:每日不間斷的學習是避免被淘汰的不二法寶。
當然,題外話說多了,咱進入正題!
最近在做一個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()以后,也就是啟動以后,要記得及時關上!否則會一直執行下去的!
@陳卧龍的博客