Comment coroutineScope détecte-t-il que ses coroutines ont été annulées?
sobes.tech IA
Réponse de l'IA
coroutineScope dans les coroutines Kotlin détecte l'annulation de ses coroutines enfants via le mécanisme d'annulation du contexte de la coroutine. Si l'une des coroutines à l'intérieur de coroutineScope est annulée (par exemple, en raison d'une exception ou d'une annulation explicite), alors tout coroutineScope reçoit le signal d'annulation.
Cela se produit parce que toutes les coroutines à l'intérieur de coroutineScope héritent d'un CoroutineContext commun, qui contient un Job. Lors de l'annulation de ce Job, toutes les coroutines enfants sont également annulées.
Ainsi, coroutineScope surveille l'état de ses coroutines enfants via le contexte commun et réagit à leur annulation, interrompant l'exécution et lançant une exception CancellationException, si nécessaire.
Exemple:
suspend fun exemple() = coroutineScope {
val job = launch {
// un travail
delay(1000)
}
delay(500)
job.cancel() // annuler la coroutine enfant
// coroutineScope détectera l'annulation et sera interrompu
}