首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >的任务队列

的任务队列
EN

Stack Overflow用户
提问于 2022-09-30 16:09:34
回答 1查看 154关注 0票数 0

我想在队列中添加任务(或可运行的),我想要串联地执行任务。新任务在运行时出现,这取决于条件。在开始下一个任务之前,我还想在每个任务之后添加一个延迟。

例如:我正在下载一个文件,用户点击另一个文件来下载。现在我不希望它平行地开始。我希望它只在下载第一个文件之后才开始。

用Kotlin为Android做这件事最好的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-01 11:52:11

以下是你所要求的:

代码语言:javascript
复制
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() } }
}

指纹:

代码语言:javascript
复制
r1
delay...
r2
delay...
r3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73911412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档