我想創建一個將在一段時間後調用的函數。而且,這應該在相同的時間之後重複。例如,該功能可以每60秒調用一次。如何在一段時間後重復調用某個函數
回答
使用java.util.Timer.scheduleAtFixedRate()
和java.util.TimerTask
是一個可能的解決方案:
Timer t = new Timer();
t.scheduleAtFixedRate(
new TimerTask()
{
public void run()
{
System.out.println("hello");
}
},
0, // run first occurrence immediatetly
2000)); // run every two seconds
不錯,雖然javax.swing.Timer中如果Fisol RASEL使用很多,如果應用程序 – 2012-07-10 15:20:53
爲了反覆,你需要使用某種形式的線程的,在後臺運行調用一個方法。我推薦使用ScheduledThreadPoolExecutor:
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
exec.scheduleAtFixedRate(new Runnable() {
public void run() {
// code to execute repeatedly
}
}, 0, 60, TimeUnit.SECONDS); // execute every 60 seconds
這是否工作,甚至Swing組件可能是一個更好的選擇被殺了? – 2015-04-25 07:21:48
@VNJ:不,如果父進程被終止,工作線程就不能存在。 – Tudor 2015-04-27 09:52:05
那該如何實現呢? – 2015-04-27 10:14:34
擺動計時器也是一個不錯的主意來實現重複函數調用。
Timer t = new Timer(0, null);
t.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//do something
}
});
t.setRepeats(true);
t.setDelay(1000); //1 sec
t.start();
- 1. 如何讓GDB在某個函數被調用一段時間後才中斷?
- 2. 如何在Android Studio中延遲一段時間後重復某個功能?
- 3. 如何在C#中運行主函數一段時間後調用函數
- 4. 如何在ColdFusion的計劃時間稍後調用某個函數?
- 5. 經過一段時間後在JavaScript中調用函數
- 6. 如何在一段時間後取消某個功能?
- 7. 如何在密鑰保存一段時間後重復操作?
- 8. 調用一次函數然後以設定的時間間隔重複
- 9. 當應用程序未運行時,以固定的時間間隔在後臺重複調用一個函數
- 10. 在一段時間內調用一個函數
- 11. 如何確保一個函數在一段時間內只被調用一次?
- 12. 如何在一段時間過後自動調用ASP.NET中的函數?
- 13. 如何在一段時間後在window.onload中加載javascript函數
- 14. 一段時間後的C++調用函數 - 無需升級
- 15. 如何在一個回調函數執行後才調用一段代碼?
- 16. 調用某個函數在時間不起作用
- 17. 如何在平移手勢後立即調用某個函數?
- 18. 在某段時間後重新加載某些div
- 19. 某段時間後未設置會話[如何在一段時間後刪除數據]
- 20. 點擊後重復調用函數
- 21. Javascript:在特定時間段後調用函數
- 22. 如何在一段時間後調用c#方法
- 23. 如何在延遲一段時間後調用didFinishLaunchingWithOptions
- 24. 在指定的時間間隔後第一次調用函數
- 25. 如何調用某個函數
- 26. 如何僅在滾動到某個位置時調用函數?
- 27. 經過一段時間後從函數返回一個值?
- 28. 如何在輸入字段中輸入整數值後調用一個函數?
- 29. XPage如何在重複中爲每個文檔調用函數
- 30. 如何在同一時間調用一些函數?
http://stackoverflow.com/a/11434143/3514144 – 2015-08-24 05:40:47