Sobes.tech
Junior — Middle

Kotlin'de suspend fonksiyonunun yürütülmesini nasıl başlatabilirsiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin'de suspend fonksiyonlar yalnızca başka bir suspend fonksiyondan veya bir coroutine'den çağrılabilir. Suspend olmayan bir bağlamda suspend fonksiyonunu başlatmak için coroutine scope ve launch veya async gibi başlatma fonksiyonları kullanılır, örneğin kotlinx.coroutines kütüphanesinden.

Örnek:

import kotlinx.coroutines.*

suspend fun fetchData() {
    delay(1000) // uzun bir işlemin taklidi
    println("Veri alındı")
}

fun main() {
    runBlocking { // bir coroutine başlatır ve mevcut thread'i engeller
        fetchData() // suspend fonksiyonunu suspend bağlamında çağırma
    }

    GlobalScope.launch { // küresel scope'ta coroutine başlatma
        fetchData()
    }
    Thread.sleep(2000) // programın erken bitmemesi için
}

Bu nedenle, suspend fonksiyonunu başlatmak için ya suspend fonksiyon içinde olmalısınız ya da launch, async veya runBlocking kullanarak bir coroutine başlatmalısınız.