Junior — Middle
coroutineScope necə onun korutinlərinin ləğv olunduğunu aşkarlayır?
sobes.tech Süni İntellekt
AI-dan cavab
coroutineScope Kotlin korutinlərində, korutina kontekstinin ləğv mexanizmi vasitəsilə öz uşaqlar korutinlərinin ləğvini aşkarlayır. Əgər coroutineScope daxilindəki bir korutina ləğv edilərsə (məsələn, istisna və ya açıq ləğv səbəbindən), bütün coroutineScope ləğv siqnalı alır.
Bu, coroutineScope daxilindəki bütün korutinlərin ümumi CoroutineContext-i miras alması və bunun içində Job-un olması ilə baş verir. Bu Job ləğv olunduqda, bütün uşaqlar korutinləri də ləğv edilir.
Bu şəkildə, coroutineScope ümumi kontekst vasitəsilə uşaqlar korutinlərinin vəziyyətini izləyir və onların ləğv olunmasına cavab verir, icraatı dayandırır və lazım gələrsə CancellationException istisnasını atır.
Nümunə:
suspend fun nümunə() = coroutineScope {
val job = launch {
// bəzi işlər
delay(1000)
}
delay(500)
job.cancel() // uşağı korutini ləğv et
// coroutineScope ləğv olunmağı aşkarlayacaq və dayandırılacaq
}