我想在队列中添加任务(或可运行的),我想要串联地执行任务。新任务在运行时出现,这取决于条件。在开始下一个任务之前,我还想在每个任务之后添加一个延迟。
例如:我正在下载一个文件,用户点击另一个文件来下载。现在我不希望它平行地开始。我希望它只在下载第一个文件之后才开始。
用Kotlin为Android做这件事最好的方法是什么?
发布于 2022-10-01 11:52:11
以下是你所要求的:
fun main() {
val delay = { millis:Long -> Runnable { println("delay..."); Thread.sleep(millis) } }
val r1 = Runnable { println("r1") }
val r2 = Runnable { println("r2") }
val r3 = Runnable { println("r3") }
val queue: List<Runnable> = listOf(r1, delay(1_000), r2, delay(2_000), r3)
thread {
queue.forEach { it.run() }
}
// alternatively, if you have an ExecutorService:
//
// executorService.execute { queue.forEach { it.run() } }
}指纹:
r1
delay...
r2
delay...
r3https://stackoverflow.com/questions/73911412
复制相似问题