【发布时间】:2020-02-12 13:45:54
【问题描述】:
我的代码结构如下:
@Throws(InterruptedException::class)
fun method() {
// do some blocking operations like Thread.sleep(...)
}
var job = launch {
method()
}
job.cancelAndJoin()
method 由外部库提供,我无法控制它的行为。执行可能需要很长时间,因此在某些情况下应该通过超时取消。
我可以使用 kotlin 协程库提供的withTimeout 函数,但是由于协程的设计,它不能取消带有阻塞的代码。有一些解决方法吗?
【问题讨论】:
标签: android asynchronous kotlin kotlin-coroutines