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.