这是代码:
public class Controller {
NetworkDiscovery n;
public static int discoveryInterval=2000;
public static void main(String[] args) throws UnknownHostException{
Timer t1=new Timer();
t1.scheduleAtFixedRate(new NetworkDiscovery(), 2000, discoveryInterval);
System.out.println("null");
}
}
假设有一个 NetworkDiscovery 类,它有一个 run() 并且其上的所有内容都工作正常,则 println() 本身不会被执行。为什么会这样?
是否有另一种方法可以在执行其他操作的同时在后台重复执行某个操作?
最佳答案
当我尝试使用以下虚拟实现时,它似乎按照广告中的方式工作:
import java.net.UnknownHostException;
import java.util.Timer;
import java.util.TimerTask;
public class Controller {
private static final class NetworkDiscovery extends TimerTask {
@Override
public void run() {
System.out.println("NetworkDiscovery");
}
}
NetworkDiscovery n;
public static int discoveryInterval = 2000;
public static void main(String[] args) throws UnknownHostException {
Timer t1 = new Timer();
t1.scheduleAtFixedRate(new NetworkDiscovery(), 2000, discoveryInterval);
System.out.println("null");
}
}
我得到以下输出:
null
NetworkDiscovery
NetworkDiscovery
...(every 2000 milliseconds)...
关于java - TIMEr 执行后的代码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648875/