【问题标题】:How to schedule a task with a timer [duplicate]如何使用计时器安排任务[重复]
【发布时间】:2021-07-04 10:43:05
【问题描述】:

如何安排每 2 秒检查一次值是否为真的任务?我正在这样做:

suspend fun a() {
   while(true) {
      if(isReady()) {
          break
      }
      delay(2000)
   }
   doWork()
}

我觉得应该有一种更惯用的方式来做到这一点。我无法更改isReady(),因此无法进行回调。

想使用协程。此外,TimerTask 过去曾给我带来过使用不同设备的问题。

【问题讨论】:

标签: kotlin


【解决方案1】:

更惯用的方式是

while(!isReady()) {
    delay(2000)
}
doWork()

(如果需要,也可以将 while 块放在一行上,这也是惯用的)

但除此之外,这几乎是使用协程的基本情况,这与您在线程上运行简单任务的方式相同(休眠直到设置标志)。您需要更复杂的东西吗?

【讨论】:

    猜你喜欢
    • 2013-12-13
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多