Java Timer.Schedule(无限循环)停止运行

标签 java loops timer infinite-loop schedule

我有以下问题: 我正在用java编写一个聊天机器人,我想调用一个方法,甚至x分钟。 所以我读到“Timer.Schedule”就是我需要的。所以我写了以下方法:

public function timerMethod()
{
    int time = 10;

    ...

    new java.util.Timer().schedule(
        new java.util.TimerTask() {
            @Override
            public void run() {
                timerMethod();
            }
        }, 1000 * 60 * time // 1MSec * 1Sec * xMin
    );
}

一开始,循环工作正常,但几个小时后(我认为是 10-15 小时后),循环不再工作...... 我不知道为什么我不工作并且没有收到任何错误消息:(

有人可以帮我吗???

最佳答案

所以您希望代码运行 x 分钟,对吗?

如果是这样,请将您希望代码运行的时间转换为毫秒,如下所示:1 分钟 = 60000 毫秒。有一个名为 System.currentTimeMillis() 的方法,它将返回自 EPOCH 日期(1970 年 1 月 1 日)起的毫秒值。

您可以像这样使用 while 循环:

`

int msTime = 60000; //1 Minute = 60000 MS
int doUntil = ms + System.currentTimeMillis(); //1 minute
while(System.currentTimeMillis() != doUntil)
{
   //Code here
   System.out.println(¨Hello World¨); //This will print Ḧello World for 60000ms

}

关于Java Timer.Schedule(无限循环)停止运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46834756/

相关文章:

Java对象数组似乎为空

loops - Powershell遍历文件夹,在每个文件夹中创建文件

javascript - 如果 URL 包含此字符串,则隐藏具有此类/id 的所有 div(循环脚本)

python - 如何可靠地重现此 python 代码中的竞争条件?

Android 计时器似乎忽略了 .cancel

c++ - MD5动画和游戏循环

Java/Android 在运行新方法之前等待线程完成

java - SimpleDateFormat 无法正常工作

java - Java 监听器在同步期间会等待或丢弃吗?

javascript - Javascript 循环中使用最后一个参数的 jQuery 单击绑定(bind)函数