如何在不使用Kotlin协程的情况下实现超时?

时间:2019-07-07 18:01:20

标签: xamarin kotlin kotlin-coroutines

我在AAR的Kotlin模块中编写了以下代码,该模块作为Xamarin Android绑定库的一部分包含在Xamarin应用程序中。

runBlocking {
    try {
        withTimeout(timeoutMsL) {
            while ((isActive) && (!success)) {
                success = getDataFromBuffer()
            }
        } 
    }
    catch (ex: TimeoutCancellationException) {
        setAVariable()
    }
}

timeoutMsLLong,通常为50毫秒。

但是,我找不到在Xamarin中使用Kotlin协程的任何方法。 Xamarin似乎仅支持Xamarin.Kotlin.StdLib(我问了关于here的另一个问题)。

上述功能会尝试从缓冲区读取数据,直到成功或达到超时为止。

如何在不使用协程的情况下在Kotlin中实现上述功能?

0 个答案:

没有答案