我正在制作的库需要用户在对象的构造函数中输入延迟。我想这样做,所以他们不必在构造函数中输入延迟(我不想使用多个构造函数),并且延迟设置为默认值,稍后可以通过方法更改。如果我稍后通过另一个方法启动线程但是我希望线程在构造函数中启动,这将很容易。
有没有办法取消正在执行的runnable或更改它的延迟?
示例代码:
public ExampleClass(Object value1, Object value2) {
executor.scheduleWithFixedDelay(new Task(), 0, 100, TimeUnit.MILLISECONDS);
}
public void cangeDelay(int delay) {
//what to do here?
}
private class Task implements Runnable {
public void run() {
//do something
}
}
答案 0 :(得分:0)
scheduleWithFixedDelay()返回Future,f。您可以调用f.cancel(),然后以不同的速率再次安排任务。