Sobes.tech
Junior — Middle

КорутинаScope анын корутиндери жокко чыгарылганын кантип аныктайт?

sobes.tech AI

AIден жооп

coroutineScope Kotlin korutinlerinde, 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ər ü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
}