Junior — Middle
Kā coroutineScope atklāj, ka tā korutīnas ir atceltas?
sobes.tech AI
Atbilde no AI
coroutineScope Kotlin korutīnās atklāj savu bērnu korutīnu atcelšanu, izmantojot korutīnu konteksta atcelšanas mehānismu. Ja kāda no iekšējām coroutineScope korutīnām tiek atcelta (piemēram, izņēmuma vai tiešas atcelšanas dēļ), tad visa coroutineScope saņem atcelšanas signālu.
Tas notiek tāpēc, ka visas coroutineScope iekšējās korutīnas manto kopīgu CoroutineContext, kas satur Job. Kad šis Job tiek atcelts, tiek atcelti arī visi bērnu korutīnas.
Tādējādi coroutineScope uzrauga savu bērnu korutīnu stāvokli caur kopīgo kontekstu un reaģē uz to atcelšanu, pārtraucot izpildi un izmetot CancellationException, ja tas ir nepieciešams.
Piemērs:
suspend fun piemērs() = coroutineScope {
val job = launch {
// kāds darbs
delay(1000)
}
delay(500)
job.cancel() // atceļam bērna korutīnu
// coroutineScope atklās atcelšanu un pārtrauksies
}