【发布时间】:2009-03-15 22:18:12
【问题描述】:
我希望每 500 毫秒在后台执行一个线程。为此,我扩展了一个 Thread,实现了 ActionListener 并将我扩展的类放入一个 Timer。 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();
}
}
【问题讨论】:
标签: java multithreading