如何在后台线程中执行查询?

7
我目前正在研究使用SQLdelight作为支持所有领域相关操作的KMM应用程序后端。
SQLdelight提供了非常好的接口,但似乎所有写入调用(插入/更新/删除)都是使用阻塞调用实现的,因此我担心它会通过阻塞主线程来损害应用程序的响应性能。
有没有建议的方法可以在不阻塞主线程的情况下执行这些操作?
该应用程序还必须在iOS上运行,因此我不能承受太多的冻结。
1个回答

0
有点晚回答,但对其他人可能有用:
假设您正在使用协程库的native-mt版本,则应使用withContext(Dispatchers.Default)。这样可以确保插入/更新/删除不会在主线程上执行。
您还可以使用sqldelight coroutine-extensions库,从查询中返回流以观察数据库中的更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接