簡體   English   中英

在協程 scope 中獲取對協程作業的引用

[英]Get reference to a coroutine job in coroutine scope

在 kotlin 協程中,大多數標准構建器方法(例如啟動)返回對作業的引用,

這樣做的設計是將這些參考保留在諸如地圖/列表(“手動”管理已啟動的作業)之類的東西中,還是有辦法在給定的 scope 中找到已啟動的作業?

 scope.launch { /* starting a coroutine in scope */ }

以后有沒有辦法在不保留 scope.launch 返回的已啟動作業的引用的情況下獲取已啟動的協程引用,或者我們應該自己管理這個(例如,保留啟動返回的引用)?

您需要保存對父作業的引用

val job = Job()
val scope = CoroutineScope(Dispatchers.IO + job)
scope.launch {
    ...
    job.children // this return all jobs started in this scope
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM