




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
定時器Timer的使用定時器Timer的使用定時計劃任務功能在Java中主要使用的就是Timer對象,它在內部使用多線程的方式進行處理,所以它和多線程技術還是有非常大的關聯的。在JDK中Timer類主要負責計劃任務的功能,也就是在指定的時間開始執行某一個任務,但封裝任務的類卻是TimerTask類。定時的功能我們在手機上見得比較多,比如定時清理垃圾,鬧鐘,等等。定時功能在java中主要使用的就是Timer對象,他在內部使用的就是多線程的技術。Time類主要負責完成定時計劃任務的功能,就是在指定的時間的開始執行某個任務。Timer類的作用是設置計劃任務,而封裝任務內容的類是TimerTask類。此類是一個抽象類,繼承需要實現一個run方法。通過查文檔我們看到Timer有以下幾個構造函數:Timer的方法以下這么多:下面我們通過定時器來完成一個簡單功能,就是在運行項目三秒后,在控制臺打印出“您該起床了”,來模擬一下鬧鐘的功能:packagecom.wang.reflect;importjava.util.Timer;importjava.util.TimerTask;classMyTaskextendsTimerTask{@Overridepublicvoidrun(){System.out.println(“您該起床了!!!!”);}}publicclassTimerDemo{publicstaticvoidmain(String[]args){//創建定時器對象Timert=newTimer();//在3秒后執行MyTask類中的run方法t.schedule(newMyTask(),3000);}}運行后,我們發現三秒后控制臺打印出了相當的文字,但是任務雖然執行完了,進程卻沒有銷毀,還是呈紅色狀態,這是什么原因呢?創建了一個Timer就相當于啟動了一個新線程,這個新線程并不是守護線程,所以會一直運行。在Time類和TimerTask類中都有一個cancel()方法。TimerTask類中的作用是:將自身從任務隊列中清除,(一個Timer對象可以執行多個Timertask任務)Timer類中的作用是:將任務隊列中的全部任務清空。下面寫一個實例,定時刪除指定磁盤某個目錄下的所有文件:packagecom.wang.reflect;importjava.io.File;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Timer;importjava.util.TimerTask;classMyTaskextendsTimerTask{/***定時刪除指定位置的文件,(這里以刪除f盤下aa文件夾的所有文件為例)*/@Overridepublicvoidrun(){Filefile=newFile(“f://aa”);deleteFolder(file);}publicvoiddeleteFolder(Filefile){File[]files=file.listFiles();for(Filef:files){if(f.isDirectory()){//使用遞歸deleteFolder(f);}else{f.delete();}}file.delete();}}publicclassTimerDemo{publicstaticvoidmain(String[]args)throwsParseException{//創建定時器對象Timert=newTimer();Stringtime=“2016-04-0411:26:40”;Dated=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”).parse(time);t.schedule(newMyTask(),d);}}注意,如果在上面測試代碼中,我給出的Date類型的時間,早于當前的時間。則會立即執行task任務。C#中Timer定時器的使用示例關于C#中timer類在C#里關于定時器類就有3個:1.定義在System.Windows.Forms里2.定義在System.Threading.Timer類里3.定義在System.Timers.Timer類里System.Windows.Forms.Timer是應用于WinForm中的,它是通過Windows消息機制實現的,類似于VB或Delphi中的Timer控件,內部使用APISetTimer實現的。它的主要缺點是計時不精確,而且必須有消息循環,ConsoleApplication(控制臺應用程序)無法使用。System.Timers.Timer和System.Threading.Timer非常類似,它們是通過.NETThreadPool實現的,輕量,計時精確,對應用程序、消息沒有特別的要求。System.Timers.Timer還可以應用于WinForm,完全取代上面的Timer控件。它們的缺點是不支持直接的拖放,需要手工編碼。本文URL:/Programming/csharp/201410/45596.htm下面舉例說明,System.Timers.Timer定時器的用法。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Timers;namespaceTimer001{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}//實例化Timer類System.Timers.TimeraTimer=newSystem.Timers.Timer();privatevoidbutton1_Click(objectsender,EventArgse){this.SetTimerParam();}privatevoidtest(objectsource,System.Timers.ElapsedEventArgse){MessageBox.Show(DateTime.Now.ToString());}publicvoidSetTimerParam(){//到時間的時候執行事件aTimer.Elapsed+=newE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學評先樹優活動方案
- 小班年俗活動方案
- 小班發音活動方案
- 展會活動游戲策劃方案
- 居家活動掃地活動方案
- 小學英語特色活動方案
- 小學組織義賣活動方案
- 少兒田徑活動方案
- 小組喚醒活動方案
- 工廠生產安全月活動方案
- 2022年浙江省臺州市溫嶺中學提前招生數學試卷
- 安全應急管理培訓
- 高中化學核心素養(北師大王磊)
- 40篇英語短文搞定高考3500個單詞(全部)
- 工程建筑物拆除、清運及建筑廢棄物綜合招投標書范本
- 保密管理與商業機密保護
- 【低保政策執行過程中產生的消極效果及優化建議分析11000字(論文)】
- 未婚先孕流產補償協議
- 醫院護理培訓課件:《妊娠劇吐的護理查房》
- 深圳小學六年級下冊英語單詞表(帶音標)
- 初中化學九年級 實驗基本操作正誤判斷 練習題
評論
0/150
提交評論