




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
定時器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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年思想品德教學工作總結范文(17篇)
- 農機監理員的工作總結(4篇)
- 2025轉正自我評價(16篇)
- 承包合同匯編(19篇)
- 大學生開學軍訓演講稿大一(5篇)
- 元旦老師精彩發言稿范文(4篇)
- 《第4課 聲音編碼》教學設計教學反思-2023-2024學年小學信息技術浙教版2023四年級下冊
- 《數據結構與算法課件》課件
- 2025年輕演講稿(6篇)
- 安全生產培訓心得總結文本1100字(11篇)
- 小米汽車發布會
- 《神筆馬良》課本劇劇本
- 手術室不良事件
- 2024年大學試題(宗教學)-道教文化筆試歷年真題薈萃含答案
- 2023-2024學年七年級生物冀少版下冊期末測試卷(一)
- 標準預防及分級防護
- 2024年四川省公務員錄用考試《行測》試題及答案
- TL-PMM180超低煙塵使用及維護培訓
- 慢性心力衰竭患者的藥物治療與查房護理
- 初中音樂八年級下冊(簡譜) 劃船曲
- 夏季換季護膚知識培訓課件
評論
0/150
提交評論