Как реализовать таймаут без использования сопрограмм Kotlin? - PullRequest
0 голосов
/ 07 июля 2019

Я написал следующий код в модуле Kotlin AAR, который включен в приложение Xamarin как часть библиотеки привязки Xamarin Android.

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

timeoutMsL - это Long, обычно 50 мс.

Однако я не могу найти какой-либо способ использовать соплины Kotlin в Xamarin. Xamarin, кажется, имеет поддержку только для Xamarin.Kotlin.StdLib (я задал отдельный вопрос об этом здесь ).

Вышеприведенная функциональность пытается прочитать данные из буфера, пока он либо не преуспеет, либо не истечет время ожидания.

Как я могу достичь вышеуказанной функциональности в Kotlin без использования сопрограмм?

...