Sobes.tech
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
}