java - 计时器不会因 if else 而停止

标签 java timer timertask

public static void randomN () {
    int requestTime = 2;
    if(requestTime > 0) {
      requestTime--;  
      myTimer.scheduleAtFixedRate(new TimerTask() {
              public void run() {
                int randomx = (int) (Math.random()*6+1);
                int randomy = (int) (Math.random()*6+1);
                System.out.println("Requests" + "X : " + randomx + " Y: " + randomy);
              }
      }, 0, 1000);
    } else {
          myTimer.cancel();
          myTimer.purge();
    } 
}

我希望我的计时器在 public void run() { ... } 内执行任务,并每秒执行一次,持续 2 秒。但这段代码无法正常工作。

最佳答案

在此代码中:

public static void randomN () {
    int requestTime = 2;
    if(requestTime > 0) { //..

无论您调用该方法多少次,在 if 语句时您的 requestTime 将始终为 2。我猜你想要

static int requestTime = 2;
public static void randomN () {
    if(requestTime > 0) { //..

关于java - 计时器不会因 if else 而停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20167883/

相关文章:

java - 在 PdfPCell/段落怪异中设置字体颜色

java - 准备好的语句仅更新 Jtextfields 中的某些字段

c - 关于嵌入式 C 中的定时器

swift - 将 RxSwift 计时器和间隔可观察量组合成一个带有完成的可观察量

ios - Swift 3 - 如何让我的计时器在后台计数?

java - 在阿拉伯语和英语之间编写文本文件混合

java - 注释没有实现的方法

android - 显示完整 Android 应用程序的计时器。

java - 让scheduleAtFixedRate接受小时而不是毫秒?

java 定时器任务示例