Junior — Middle
coroutineScope, korutinalarının iptal edildiğini nasıl fark eder?
sobes.tech yapay zeka
AI'dan gelen yanıt
Kotlin korutinlerinde coroutineScope, korutinin bağlamındaki iptal mekanizması aracılığıyla çocuk korutinlerinin iptalini algılar. Eğer coroutineScope içindeki bir korutin iptal edilirse (örneğin, bir istisna veya açık iptal nedeniyle), tüm coroutineScope iptal sinyali alır.
Bu, coroutineScope içindeki tüm korutinlerin ortak bir CoroutineContext'i miras alması ve bunun içinde bir Job bulunması nedeniyle olur. Bu Job iptal edildiğinde, tüm çocuk korutinler de iptal edilir.
Bu şekilde, coroutineScope ortak bağlam aracılığıyla çocuk korutinlerinin durumunu izler ve iptal olduklarında, gerekirse yürütmeyi durdurur ve bir CancellationException istisnası fırlatır.
Örnek:
suspend fun örnek() = coroutineScope {
val job = launch {
// bazı işler
delay(1000)
}
delay(500)
job.cancel() // çocuk korutini iptal et
// coroutineScope iptali algılar ve durur
}