[英]How can I execute a method every x second for y time in java
我想每秒執行一次方法20次。
其實我有計時器
Timer timer = new Timer();
int begin = 0;
int timeInterval = 1000;
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
//call the method
}
}, begin, timeInterval);
如何以此間隔調用方法20次?
使用timer.schedule()
,並跟蹤計時器執行的次數,並在20次后停止計時器,使用timer.cancel()
在指定的延遲之后開始,為重復的固定延遲執行安排指定的任務。 隨后的執行大約以規定的時間間隔進行,並以指定的時間段分隔。
在固定延遲執行中,每次執行都是相對於上一次執行的實際執行時間進行調度的。 如果執行因任何原因(例如垃圾收集或其他后台活動)而延遲,則后續執行也將延遲。 從長遠來看,執行頻率通常會略低於指定時間段的倒數(假設Object.wait(long)下的系統時鍾是准確的)。
固定延遲執行適用於需要“平滑”的重復活動。 換句話說,它適用於在短期內保持頻率比長期更准確的活動。 這包括大多數動畫任務,例如定期閃爍光標。 它還包括響應於人類輸入而執行常規活動的任務,例如只要按下鍵就自動重復一個字符。
參數:
task - task to be scheduled. delay - delay in milliseconds before task is to be executed. period - time in milliseconds between successive task executions.
Timer timer = new Timer();
int begin = 0;
int timeInterval = 1000;
timer.schedule(new TimerTask() {
int counter = 0;
@Override
public void run() {
//call the method
counter++;
if (counter >= 20){
timer.cancel();
}
}
}, begin, timeInterval);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.