Timer.schedule() 执行后留下一个打开的线程
Timer.schedule() leaves an open thread after execution
我正在尝试使用 Timer.schedule()
安排操作在 1 秒后发生。我遇到的问题是在执行操作后,有一个打开的线程挂起,我不得不按 Ctrl+C 来关闭它。
我是不是做错了什么?如何阻止计时器离开打开的线程?
public class MyClass {
public static int WAITING_WINDOW = 1000;
private boolean waiting = true;
public MyClass() {}
public void myMethod() {
new Timer().schedule(
new TimerTask() {
@Override
public void run() {
setWaiting(false);
}
}, WAITING_WINDOW
);
}
public void setWaiting(boolean waiting) {
this.waiting = waiting;
}
}
保留对 Timer
的引用并调用 Timer.cancel()
。
并阅读 javadocs,所有内容都记录在那里!
我正在尝试使用 Timer.schedule()
安排操作在 1 秒后发生。我遇到的问题是在执行操作后,有一个打开的线程挂起,我不得不按 Ctrl+C 来关闭它。
我是不是做错了什么?如何阻止计时器离开打开的线程?
public class MyClass {
public static int WAITING_WINDOW = 1000;
private boolean waiting = true;
public MyClass() {}
public void myMethod() {
new Timer().schedule(
new TimerTask() {
@Override
public void run() {
setWaiting(false);
}
}, WAITING_WINDOW
);
}
public void setWaiting(boolean waiting) {
this.waiting = waiting;
}
}
保留对 Timer
的引用并调用 Timer.cancel()
。
并阅读 javadocs,所有内容都记录在那里!