Java:使用计时器定期运行方法

时间:2014-09-28 13:17:57

标签: java timer

我是一个Java项目,它主要创建一个扩展Thread的类(ThreadClient)实例。我需要ThreadClient.run启动2个定时器来定期运行ThreadClient类的2个方法。

我在互联网上找到的例子表明,计时器可以启动一个离开Thread类的classe实例的run方法。 我不需要创建一个新类,只需要运行创建定时器的同一个类的2个方法。 像C#这样的东西:

public class ThreadClient 
{
    private Timer _timer; 

    public ThreadClient() {
        Start();
    }

    private void Start()
    {
        _timer = new Timer(3000); // Set up the timer for 3 seconds
        _timer.Elapsed += new ElapsedEventHandler(_timer_Elapsed);
        _timer.Enabled = true; // Enable it
    }

    private void _timer_Elapsed(object sender, ElapsedEventArgs e)
    {
        // do something
    }
}

方法_timer_Elapsed属于创建计时器的类。

提前致谢, 塞缪尔

1 个答案:

答案 0 :(得分:0)

这就是我最终达到目标的方式:

    // Timer to process sales
    TimerTask ttProcessSales = new TimerTask() {

        @Override
        public void run() {
            processSales();
        }
    };
    Timer tProcessSales = new Timer();
    tProcessSales.schedule(ttProcessSales, 0, this._processTaskTimeInterval);

    // Timer to process tasks
    TimerTask ttProcessTask = new TimerTask() {

        @Override
        public void run() {
            processTasks();             
        }
    }; 
    Timer tProcessTasks = new Timer();
    tProcessTasks.schedule(ttProcessTask, 0, this._processTaskTimeInterval);

通过这种方式,我可以使用计时器运行该类的2个方法,而无需为每个需要执行的方法创建新类。