gpt4 book ai didi

kotlin - 协程将一项工作添加为另一个工作的子项的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-02 05:44:14 25 4
gpt4 key购买 nike

假设我们有 job1 : Jobjob2 : Job 并且我们希望使 job2 成为 job1 的子级>(它们单独创建时没有关系)。

声明这种关系的正确方法是什么?这样,当 job1 被取消时,job2 也会被取消...

我尝试了job1.attachChild(e1.job2 as ChildJob),但这是内部API。当我从 job1 协程启动 job2 时,我不想做一些修改。

最佳答案

您可以使用 Job(parent: Job?) 工厂函数来接收父作业作为参数。它有以下定义:

public fun Job(parent: Job? = null): Job

这意味着参数parent是可选的。所以你可以像这样创建你的工作:

var parentJob: Job = Job()
var childJob: Job = Job(parentJob)

另请查看SupervisorJob ,可用于自定义 Job 的默认行为。 SupervisorJob 工厂函数具有类似的定义:

fun SupervisorJob(parent: Job? = null): Job

关于kotlin - 协程将一项工作添加为另一个工作的子项的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54735817/

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