gpt4 book ai didi

java - 为游戏重新安排 TimerTask 'lobby'

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:53 26 4
gpt4 key购买 nike

场景:
我正在制作一款流行纸牌游戏的克隆版。需要有一段时间人们可以加入游戏。有时,周期太短。因此,我想让人们延长等待时间。对于示例号码,默认的“大堂时间”为 45 秒,每次分机为 15 秒。

问题:
我决定使用 Java 的定时器。当“大厅”开始时,TimerTask 被安排在从现在开始的 45 秒内:

UnoStartTimer.schedule(new UnoStartTask(), 45000);

当有人想延长延迟时,这是我要运行的伪代码:

UnoStartTimer.reschedule(UnoStartTimer.getNextScheduledTime() + 15000);

快速浏览 the javadoc表示不存在使用 Timer 类的这种简单解决方案。

这是我想到的可能性:

  • 我应该使用不同的调度类(我想我在另一个问题的答案中看到了一个叫做 ScheduledExecutorService 的东西,但它并没有立即看起来像是解决我的问题的方法)
  • 有一种方法可以用 Timer 做到这一点,但我公然忽略了它
  • 没有简单的方法可以做到这一点

那么,是哪一个呢?

最佳答案

java.util.Timer .除其他事项外,我还看到了一个 cancel() 方法。我还看到一个 schedule() 方法采用 Date 对象而不是毫秒数。

您可以创建一个从现在开始 45 秒后的日期对象,用该时间安排计时器,如果发生延期,则取消它,向原始日期对象添加 15 秒并用该新时间安排任务。

关于java - 为游戏重新安排 TimerTask 'lobby',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11141792/

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