gpt4 book ai didi

java - 覆盖计划任务

转载 作者:行者123 更新时间:2023-12-01 23:48:53 25 4
gpt4 key购买 nike

除非被新的计划任务覆盖,否则如何在 x 秒后执行任务?

场景是,我想在用户完成 JTextField 中的输入后 1 秒执行任务。为此,我需要安排任务,并在每次“文档”更改时重新安排它。

我尝试使用 ScheduledExecutorService,但调度只是将任务添加到列表中,而不是取消上一个任务。

这是我想要的地方:

class TextChangeListener implements DocumentListener {
private final ??? updater = new ???();

@Override
public void changedUpdate(DocumentEvent arg0) {}

@Override
public void insertUpdate(DocumentEvent arg0) {
update();
}

@Override
public void removeUpdate(DocumentEvent arg0) {
update();
}

private void update() {
// Wait for the user to finish typing first
updater.schedule(new Runnable() {
@Override
public void run() {
doSomeStuff();
}
}, 1, TimeUnit.SECONDS);
}
}

最佳答案

我认为您的 ScheduledExecutorService 已步入正轨 - 您只需要保留它返回的 Future 即可。查看cancel方法。我假设您正在使用 schedule方法。

所以基本上你想做类似的事情

if (future != null) {
future.cancel();
}
future = // do scheduling code with ScheduledExecutorService

关于java - 覆盖计划任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16572556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com