Kotlin runBlocking在背景线程

问题描述 投票:5回答:1

我正在将现有应用程序从Java转换为Kotlin。该应用程序创建一个在后台线程中运行的IntentService,其任务是执行一些操作,这些操作可以反复无限地阻止线程(例如网络调用,数据库交互)与suspend函数。由于“当前线程”实际上是后台线程,因此我没有阻止UI。

在当前线程上使用runBlocking来运行所有挂起函数是一个好习惯吗?还是有更好的方法?

android multithreading kotlin kotlinx.coroutines
1个回答
2
投票

这正是runBlocking的用法。 runBlocking被添加到协同程序中,以便在coroutines的用户和正在执行代码阻塞的其他地方之间建立桥梁。如果你想要一个线程被阻塞并等待执行一个协同程序,你应该总是使用runBlocking

© www.soinside.com 2019 - 2024. All rights reserved.