class Rhythm extends TimerTask
{
private java.util.Timer SegmentTimer;
pubic void start()
{
this.Segmenttimer = new Timer(true);
Segmenttimer.scheduleAtFixedRate(this, 0, 1000);
}
public void run() {}
public void stop()
{
this.SegmentTimer.Cancel();
}
}
class Program
{
Rhythm rhythm = new Rhythm();
for (item : List)
{
rhythm.start();
}
}
这是我的示例程序。我有一些逻辑来加载节奏对象。在这种情况下,我只是展示了在每个循环开始之前创建一个新实例。原因是我正在基于json数据初始化节奏对象列表。所以,我想优化过程并避免重复的IO操作来解析循环内的json数据。
我的问题是循环的第二次迭代失败,并说已经安排了TimeTask。
请帮助解决这个问题。
答案 0 :(得分:0)
您的代码不完整...... TimerTask的子类必须实现run方法,另外一方面,您需要添加一次,不能重启Timer两次,所以这部分不正确:
for (item : List) {
rhythm.start();
}
也许您需要定义item对象,以便它们拥有自己的Timer,您可以在循环中启动
如果笔记与节奏无关,那么你可以这样做:
for (item : List) {
rhythm = new Rhythm();
rhythm.start();
}