在Kotlin中使用协程实现每隔几毫秒调用一次函数可以通过以下步骤实现:
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0'
delay
函数来实现延迟调用。可以使用launch
函数创建一个新的协程,并在其中使用repeatWhile
函数来实现循环调用。import kotlinx.coroutines.*
fun main() {
val scope = CoroutineScope(Dispatchers.Default)
scope.launch {
repeatWhile(1000L) {
// 调用需要执行的函数
myFunction()
// 延迟指定的时间
delay(100L)
}
}
// 等待协程执行完成
runBlocking {
delay(5000L)
scope.cancel()
}
}
suspend fun repeatWhile(delayMillis: Long, action: () -> Unit) {
while (isActive) {
action()
delay(delayMillis)
}
}
suspend fun myFunction() {
// 在这里编写需要执行的函数逻辑
println("Function called")
}
在上述代码中,我们创建了一个协程作用域scope
,并在其中使用launch
函数创建一个新的协程。在协程中,我们使用repeatWhile
函数来实现每隔一定时间调用myFunction
函数,并使用delay
函数来实现延迟。
myFunction
函数会被每隔100毫秒调用一次,总共调用5次。领取专属 10元无门槛券
手把手带您无忧上云