我希望线程每 500 毫秒在后台执行一次。为此,我扩展了一个 Thread,实现了 ActionListener,并将我扩展的类放入了一个 Timer。定时器每 500 毫秒调用一次 run()。但是,当此线程从 Internet 下载内容时,我的整个 Swing GUI 会卡住。我希望它在后台运行,而不会在等待 IO 完成时卡住 GUI。我还让下载器在我们等待 500 毫秒之前完成下载。
调用gogogo()初始化整个过程:
public final class Downloader extends Thread implements ActionListener
{
public static void gogogo()
{
t= new Downloader();
new Timer(500, (ActionListener) t).start();
}
public void run()
{
doStuff(); //the code that i want repeatedly called
}
public void actionPerformed(ActionEvent e)
{
run();
}
}
最佳答案
只需启动线程一次,使其循环,并在每次迭代时执行 Thread.sleep(500L)
。这可能比每 500 毫秒启动一个全新的线程更有意义。如果可以避免,就没有理由承担相关费用。
关于java - 你如何在Java中重复调用一个Thread?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/648663/