Sobes.tech
Junior — Middle

როგორ აღმოაჩენს coroutineScope, რომ მისი კორუტინები გაუქმებულია?

sobes.tech AI

პასუხი AI-სგან

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
}