gpt4 book ai didi

java - 如何使用 Java.Util.Timer

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:14:11 25 4
gpt4 key购买 nike

我想制作一个简单的程序,使用 Java.Util.Timer 计算秒数直到 100下面的代码是我正在使用的代码,但是它只是一次打印出所有数字,而无需在每个数字之间等待一秒钟。我该如何解决? (通常我会使用 thread.sleep 但这只是概念证明。)

import java.util.Timer;
import java.util.TimerTask;

public class Main {
static Timer timer = new Timer();
static int seconds = 0;

public static void main(String[] agrs) {

MyTimer();

}

public static void MyTimer() {

TimerTask task;

task = new TimerTask() {
@Override
public void run() {
while (seconds < 100) {
System.out.println("Seconds = " + seconds);
seconds++;
}
}
};
timer.schedule(task, 0, 1000);

}

}}

最佳答案

不要使用这个 while 循环:

    task = new TimerTask() {
@Override
public void run() {
while (seconds < 100) {
System.out.println("Seconds = " + seconds);
seconds++;
}
}
};

while 循环将立即运行,因为它内部没有延迟。相反,您希望 Timer 本身成为您的循环,这意味着不需要此循环。

而是使用 if block 来检查计数是否小于某个最大数,如果是,则将其打印出来并增加计数。

    task = new TimerTask() {
private final int MAX_SECONDS = 100;

@Override
public void run() {
if (seconds < MAX_SECONDS) {
System.out.println("Seconds = " + seconds);
seconds++;
} else {
// stop the timer
cancel();
}
}
};

关于java - 如何使用 Java.Util.Timer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23095690/

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