gpt4 book ai didi

Java Timer 不等待前一个 TimerTask 在新的 TimerTask 开始之前完成

转载 作者:行者123 更新时间:2023-11-29 07:09:10 25 4
gpt4 key购买 nike

我正在用 Java 编写应用程序,但遇到以下问题:一段时间后,显示了一个 inputDialog(JOptionPane)。因为间隔很短,即 10 秒,如果我延迟与第一个对话的交互,那么第二个将在我之后立即出现。有什么办法可以避免这种情况吗?我以为那个程序会等待我的输入。

代码:

Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
String task = JOptionPane.showInputDialog(null, "What are you doing now???", "");
}
}, 10*1000, 10*1000);

最佳答案

如果任务已经在运行,只需检查你的运行方法,当它运行时,返回。

添加一个变量

static boolean isRunning = false;

到您的 TimerTask 实现类。你的运行方法看起来像这样:

 public void run() {
if (isRunning == false) {
isRunning = true;

// your code

isRunning = false;
}
}

关于Java Timer 不等待前一个 TimerTask 在新的 TimerTask 开始之前完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15999727/

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