定時(shí)器Timer的使用_第1頁
定時(shí)器Timer的使用_第2頁
定時(shí)器Timer的使用_第3頁
定時(shí)器Timer的使用_第4頁
定時(shí)器Timer的使用_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

定時(shí)器Timer的使用定時(shí)器Timer的使用定時(shí)計(jì)劃任務(wù)功能在Java中主要使用的就是Timer對象,它在內(nèi)部使用多線程的方式進(jìn)行處理,所以它和多線程技術(shù)還是有非常大的關(guān)聯(lián)的。在JDK中Timer類主要負(fù)責(zé)計(jì)劃任務(wù)的功能,也就是在指定的時(shí)間開始執(zhí)行某一個(gè)任務(wù),但封裝任務(wù)的類卻是TimerTask類。定時(shí)的功能我們在手機(jī)上見得比較多,比如定時(shí)清理垃圾,鬧鐘,等等。定時(shí)功能在java中主要使用的就是Timer對象,他在內(nèi)部使用的就是多線程的技術(shù)。Time類主要負(fù)責(zé)完成定時(shí)計(jì)劃任務(wù)的功能,就是在指定的時(shí)間的開始執(zhí)行某個(gè)任務(wù)。Timer類的作用是設(shè)置計(jì)劃任務(wù),而封裝任務(wù)內(nèi)容的類是TimerTask類。此類是一個(gè)抽象類,繼承需要實(shí)現(xiàn)一個(gè)run方法。通過查文檔我們看到Timer有以下幾個(gè)構(gòu)造函數(shù):Timer的方法以下這么多:下面我們通過定時(shí)器來完成一個(gè)簡單功能,就是在運(yùn)行項(xiàng)目三秒后,在控制臺(tái)打印出“您該起床了”,來模擬一下鬧鐘的功能:packagecom.wang.reflect;importjava.util.Timer;importjava.util.TimerTask;classMyTaskextendsTimerTask{@Overridepublicvoidrun(){System.out.println(“您該起床了?。。?!”);}}publicclassTimerDemo{publicstaticvoidmain(String[]args){//創(chuàng)建定時(shí)器對象Timert=newTimer();//在3秒后執(zhí)行MyTask類中的run方法t.schedule(newMyTask(),3000);}}運(yùn)行后,我們發(fā)現(xiàn)三秒后控制臺(tái)打印出了相當(dāng)?shù)奈淖?,但是任?wù)雖然執(zhí)行完了,進(jìn)程卻沒有銷毀,還是呈紅色狀態(tài),這是什么原因呢?創(chuàng)建了一個(gè)Timer就相當(dāng)于啟動(dòng)了一個(gè)新線程,這個(gè)新線程并不是守護(hù)線程,所以會(huì)一直運(yùn)行。在Time類和TimerTask類中都有一個(gè)cancel()方法。TimerTask類中的作用是:將自身從任務(wù)隊(duì)列中清除,(一個(gè)Timer對象可以執(zhí)行多個(gè)Timertask任務(wù))Timer類中的作用是:將任務(wù)隊(duì)列中的全部任務(wù)清空。下面寫一個(gè)實(shí)例,定時(shí)刪除指定磁盤某個(gè)目錄下的所有文件:packagecom.wang.reflect;importjava.io.File;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Timer;importjava.util.TimerTask;classMyTaskextendsTimerTask{/***定時(shí)刪除指定位置的文件,(這里以刪除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{//創(chuàng)建定時(shí)器對象Timert=newTimer();Stringtime=“2016-04-0411:26:40”;Dated=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”).parse(time);t.schedule(newMyTask(),d);}}注意,如果在上面測試代碼中,我給出的Date類型的時(shí)間,早于當(dāng)前的時(shí)間。則會(huì)立即執(zhí)行task任務(wù)。C#中Timer定時(shí)器的使用示例關(guān)于C#中timer類在C#里關(guān)于定時(shí)器類就有3個(gè):1.定義在System.Windows.Forms里2.定義在System.Threading.Timer類里3.定義在System.Timers.Timer類里System.Windows.Forms.Timer是應(yīng)用于WinForm中的,它是通過Windows消息機(jī)制實(shí)現(xiàn)的,類似于VB或Delphi中的Timer控件,內(nèi)部使用APISetTimer實(shí)現(xiàn)的。它的主要缺點(diǎn)是計(jì)時(shí)不精確,而且必須有消息循環(huán),ConsoleApplication(控制臺(tái)應(yīng)用程序)無法使用。System.Timers.Timer和System.Threading.Timer非常類似,它們是通過.NETThreadPool實(shí)現(xiàn)的,輕量,計(jì)時(shí)精確,對應(yīng)用程序、消息沒有特別的要求。System.Timers.Timer還可以應(yīng)用于WinForm,完全取代上面的Timer控件。它們的缺點(diǎn)是不支持直接的拖放,需要手工編碼。本文URL:/Programming/csharp/201410/45596.htm下面舉例說明,System.Timers.Timer定時(shí)器的用法。usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Timers;namespaceTimer001{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}//實(shí)例化Timer類System.Timers.TimeraTimer=newSystem.Timers.Timer();privatevoidbutton1_Click(objectsender,EventArgse){this.SetTimerParam();}privatevoidtest(objectsource,System.Timers.ElapsedEventArgse){MessageBox.Show(DateTime.Now.ToString());}publicvoidSetTimerParam(){//到時(shí)間的時(shí)候執(zhí)行事件aTimer.Elapsed+=newE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論