Вопросы по теме 'kotlin-coroutines'

Разница между потоком и сопрограммой в Котлине
Есть ли какая-то конкретная языковая реализация в Kotlin, которая отличает ее от реализации сопрограмм на других языках? Что означает, что сопрограмма похожа на легкий поток? В чем разница? На самом ли деле корутины kotlin работают...
20351 просмотров
schedule 17.04.2022

Что делает закрытие канала kotlinx.coroutines
Что делает закрытие канала kotlinx.coroutines с помощью channel.close() и каков будет негативный эффект, если каналы не будут закрыты вручную? Если я не закрою канал вручную, будет ли какая-то ненужная обработка? Будет ли где-нибудь ссылка на канал,...
3696 просмотров
schedule 12.06.2023

Как повторить попытку экспоненциального отката на сопрограммах kotlin
Я использую сопрограммы kotlin для сетевого запроса с использованием метода расширения для вызова класса в модификации, подобной этой public suspend fun <T : Any> Call<T>.await(): T { return suspendCancellableCoroutine {...
14220 просмотров

Вызов функции приостановки Kotlin в классе Java
Предположим, у нас есть следующая функция приостановки: suspend fun doSomething(): List<MyClass> { ... } Если я хочу вызвать эту функцию в одном из моих существующих классов Java (который я пока не могу преобразовать в Kotlin) и...
19976 просмотров
schedule 01.10.2022

Подходит ли модель Kotlin Structured Concurrency [сопрограммы] для пользовательского интерфейса для записи в БД?
Меня особенно беспокоит вставка данных, инициированных пользователем, в локальную базу данных. Следующий шаблон преобладает в примерах (в том числе из официальных источников, например, JetBrains, Google / Android) для использования сопрограмм...
199 просмотров

Является ли delay () в Kotlin Coroutine неблокирующей функцией?
Комментарий в примере кода говорит, что delay () не блокирует. Должен ли он быть приостановлен? https://kotlinlang.org/docs/reference/coroutines/basics.html fun main() { GlobalScope.launch { // launch new coroutine in background and...
2118 просмотров
schedule 18.08.2023

Как сделать данные, привязанные к запросу, глобально доступными в Ktor?
Строю микросервис в Кторе. Пока мы работаем в модуле приложения, Ktor предоставляет доступ к объекту call , который содержит данные авторизации. Моя проблема в том, что мне нужно получить доступ к объекту call из класса уровня обслуживания. В...
337 просмотров
schedule 21.02.2024

Почему имя потока меняется после объединения всех заданий в области сопрограммы?
У меня есть код, который сбивает меня с толку. почему, если я использую CoroutineScope (Dispatchers.IO) .launch в runBlocking и проверяю его с помощью println (). Каждый раз, когда я проверяю это println("01 Runblocking Scope Before join() =>...
220 просмотров

Диспетчер сопрограмм Kotlin, как по умолчанию, но без основного (пользовательского) потока
Есть ли способ создать (или получить каким-либо образом) диспетчер сопрограмм Kotlin на Android, который действует как Default, но исключает касание ядер потоков пользовательского интерфейса? Итак, в основном, я сталкиваюсь с тяжелыми...
884 просмотров
schedule 07.02.2022

Существуют ли операторы asyncAll и / или awaitAll для сопрограмм Kotlin?
У меня есть коллекция, и я хочу выполнить некоторые операции со всеми ее элементами асинхронно в Kotlin. Я легко могу сделать это с помощью двух операций с картой: suspend fun collectionAsync() = coroutineScope { val list = listOf("one",...
1773 просмотров
schedule 14.10.2022

Принуждение приостановленной функции к работе в одном потоке для сопоставления объектов Realm в фоновом режиме
Скажем, мне периодически (каждые 3 секунды) нужно читать список некоторых RealmObject , и я хочу сопоставить эти объекты с простыми объектами данных, которые будут использоваться для заполнения содержимого списков. Для тех, кто задается вопросом,...
475 просмотров

Асинхронное построение производителя
У меня есть случай, когда я хочу построить ReceiveChannel , используя produce , асинхронно, но он зависает. Вот упрощенный пример: runBlocking { val deferredChannel = async { produce<String> { send("foo") } } val...
59 просмотров
schedule 02.11.2023

Не удалось выполнить тест всех классов сопрограмм
Я тестировал свой класс докладчика и всю тестовую работу. Но когда я попытался запустить свой тестовый класс, все тесты сопрограмм не прошли. Я пытаюсь сбросить отправку и очистить прицел. частный диспетчер val = TestCoroutineDispatcher ()...
92 просмотров

Корутина withContext больше не доступна и не читается, перестает работать без причины
Я использую компоненты архитектуры и комнату, но я не думаю, что это происходит оттуда. Я использую сопрограммы для вставки и извлечения данных из базы данных. Все работало нормально, пока я не столкнулся с этой проблемой Эта последняя проблема...
328 просмотров
schedule 06.11.2022

Приостановить асинхронную подфункцию kotlin coroutine
У меня есть асинхронный CoroutineScope , в котором может быть (по условию) вызов подфункции, которая возвращает свой результат в асинхронном Unit Как я могу дождаться возвращенного результата и вернуть его вне асинхронного Unit . Поэтому...
166 просмотров
schedule 28.08.2023

Значение этого кода приостановить веселье get(url: String) = withContext(Dispatchers.IO){/**/}
Я новичок в разработке для Android. Когда я читал средний пост https://medium.com/androiddevelopers/coroutines-on-android-part-i-getting-the-background-3e0e54d20bb Я наткнулся на этот код: suspend fun get(url: String) =...
154 просмотров
schedule 06.07.2023

Co Routines получают местоположение из фона
Я отправляю данные о местоположении с помощью подпрограмм в workmanager. Я пробовал просто использовать workmanager, но он не выполняет асинхронную работу. Я пробовал ListenableWorkmanager, но это было слишком сложно для меня, поэтому я пытаюсь...
438 просмотров

Обобщенная функция, позволяющая избежать повторяемости
Я хочу иметь обобщенную функцию для моего метода репозитория, которая выполняет вызов API. Вот код - RemoteInterface.java interface RemoteInterface { @GET("...") suspend fun getRandomImage(): MyModel @GET(".../{id}/...")...
81 просмотров

liveData с сопрограммами и SavedStateHandle
Этот ответ показывает нам, как мы можем использовать liveData в репозиторий, чтобы вернуть LiveData в ViewModel , который будет наблюдать View . А что, если мы хотим использовать SavedStateHandle ? Как мы можем преобразовать следующий код...
963 просмотров

Котлин - сопрограммы работают не так, как ожидалось
Этот вопрос связан с одним из моих предыдущих вопросов: Котлин - сопрограммы с циклами . Итак, это моя текущая реализация: fun propagate() = runBlocking { logger.info("Propagating objectives...") val variablesWithSetObjectives:...
46 просмотров
schedule 17.12.2023