gpt4 book ai didi

java - 使用 GWT 计时器在循环中延迟

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:18 25 4
gpt4 key购买 nike

我正在研究 GWT + JAVA。

我在 GWT 中有一段代码如下

static int DELAY = 1000;

private void downloadAttachments(final List<String> ftIdList)
{
try
{
Timer timer = new Timer()
{
@Override
public void run()
{
int cnt = 1;
for (String url: ftIdList)
{
String windowName = "win" + cnt;
Window.open(url, windowName, "");
cnt++;
scheduleRepeating(DELAY*2);
}
cancel();
}
};
timer.run();
}
catch (Throwable exc)
{
Window.alert(exc.getMessage());
}
}

我需要打开几个窗口以允许用户下载所有文件。

我正在调用一个 Servlet。

如何在循环中引入延迟直到下一次迭代?

最佳答案

这是解决方案,与 maks 建议的风格相同,通过使用属性来保持计数器的状态。您仍然有循环,只是方式不同。

private void downloadAttachments(final List<String> ftIdList) {
final int size = ftIdList.size();

Timer timer = new Timer() {

private int counter = 0;

@Override
public void run() {
if (counter == size) {
cancel();
return;
}
String url = ftIdList.get(counter);
String winName = "win" + counter;
Window.open(url, winName, "");
counter++;
}
};
timer.scheduleRepeating(2000);
}

关于java - 使用 GWT 计时器在循环中延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8615991/

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