Skip to content

Instantly share code, notes, and snippets.

View KhomDrake's full-sized avatar

Vinicius Viana KhomDrake

View GitHub Profile
suspend fun loadMovies() {
}
requestScope.launch(Dispatchers.Main) {
val moviesComedy = async(Dispatchers.IO) { loadMovies("Comedy") }
val moviesAction = async(Dispatchers.IO) { loadMovies("Action") }
showMoviesGenres(listOf(moviesComedy.await(), moviesAction.await())
}
requestScope.launch(Dispatchers.Main) {
val moviesComedy = async(Dispatchers.IO) { loadMovies("Comedy") }.await()
val moviesAction = async(Dispatchers.IO) { loadMovies("Action") }.await()
showMoviesGenre(moviesComedy)
showMoviesGenre(moviesAction)
}
requestScope.launch(Dispatchers.Main) {
val moviesComedy = withContext(Dispatchers.IO) { loadMovies("Comedy") }
val moviesAction = withContext(Dispatchers.IO) { loadMovies("Action") }
showMoviesGenre(moviesComedy)
showMoviesGenre(moviesAction)
}
requestScope.launch {
val moviesComedy = loadMovies("Comedy")
val moviesAction = loadMovies("Action")
launch(Dispatchers.Main) {
showMoviesGenre(moviesComedy)
showMoviesGenre(moviesAction)
}
}
val value : Deferred<Int> = requestScope.async {
42
}
requestScope.async {
}
fun loadMovies() {
mainScope.launch {
val movies = withContext(Dispatchers.IO) { // launch a coroutine in another Dispatcher and return the result
loadMovies()
}
showMovies(movies)
}
}
fun loadMovies() {
backgroundScope.launch {
val movies = loadMovies() // load the movies on the background thread
launch(Dispatchers.Main) { // to touch the views to show the movies, we need to launch another coroutine in the main thread
showMovies(movies)
}
}
}
val launchJob = mathScope.launch {
}
launchJob.cancel()