Size: a a a

2019 April 12

BP

Bogdan Panchenko in Kotlin JVM
Andrew Mikhaylov
Да, я понимаю, что надо просто взять и обмазать, а не страдать в чатиках. Вот и спрашивал, занимался кто-то таким с более светлой, чем у меня, головой, или нет.
я ток осилил обычные проперти, пилил BigDecmalPropety, но там есть некоторые особености джавы, которые не даютсделать полный копипаст на котлине, дело в  явных дженериках
источник
2019 April 13

А

Андрей in Kotlin JVM
А подскажите пожалуйста, что делать в случае, если нужно блокирующий метод вызвать в корутине, а ее скопа нет. В глобалскопе запускать, и ждать выполнения?
источник

В

Вафель in Kotlin JVM
Андрей
А подскажите пожалуйста, что делать в случае, если нужно блокирующий метод вызвать в корутине, а ее скопа нет. В глобалскопе запускать, и ждать выполнения?
withContext(Dispatchrs.IO) {}
если я правильно понимаю
источник

AM

Andrew Mikhaylov in Kotlin JVM
Андрей
А подскажите пожалуйста, что делать в случае, если нужно блокирующий метод вызвать в корутине, а ее скопа нет. В глобалскопе запускать, и ждать выполнения?
Протягивать скоуп оттуда, где он есть. Насколько я видел, обычно это либо main, либо окно, либо активити / фрагмент / etc, либо презентер в случае MVP, либо сервис, короче любая фигня, у которой есть осмысленное время жизни.
источник

А

Андрей in Kotlin JVM
Вафель
withContext(Dispatchrs.IO) {}
если я правильно понимаю
А где можно подробнее почитать, как оно работает?
источник

А

Андрей in Kotlin JVM
Andrew Mikhaylov
Протягивать скоуп оттуда, где он есть. Насколько я видел, обычно это либо main, либо окно, либо активити / фрагмент / etc, либо презентер в случае MVP, либо сервис, короче любая фигня, у которой есть осмысленное время жизни.
Звучит как костыль, особенно в случае ктора
источник

AM

Andrew Mikhaylov in Kotlin JVM
Андрей
Звучит как костыль, особенно в случае ктора
Если вы уже в саспенд-функции, то этим заниматься не надо, конечно. Я упустил этот момент.
источник

AM

Andrew Mikhaylov in Kotlin JVM
Вам тут действительно не скоуп нужен, а просто смена контекста правильно подсказанным выше методом.
источник

AM

Andrew Mikhaylov in Kotlin JVM
Coroutine Context and Dispatchers - Kotlin Programming Language
https://kotlinlang.org/docs/reference/coroutines/coroutine-context-and-dispatchers.html
источник

А

Андрей in Kotlin JVM
Окей, спасибо
источник

В

Вафель in Kotlin JVM
Андрей
А где можно подробнее почитать, как оно работает?
Если кратко withContext саспендит текущую коррутину и выполняет лямбду на другом диспетчере. Соответственно IO заточен под блокировку потоков.

А более подробно все расписано в доках.
источник

А

Андрей in Kotlin JVM
А если мне нужно запустить другие корутины не имея контекста, это как-то так должно выглядеть? Или тут тоже Dispatchers.IO нужно использовать?
источник

В

Вафель in Kotlin JVM
Андрей
А если мне нужно запустить другие корутины не имея контекста, это как-то так должно выглядеть? Или тут тоже Dispatchers.IO нужно использовать?
Не совсем понимаю что вы хотите сделать, но Dispatchers.IO нужно использовать только если вы собираетесь заблокировать поток.

Если вы про то что происходит в start() то там, мне кажется, надо использовать coroutineScope {} вместо withContext {}
источник

А

Андрей in Kotlin JVM
Вафель
Не совсем понимаю что вы хотите сделать, но Dispatchers.IO нужно использовать только если вы собираетесь заблокировать поток.

Если вы про то что происходит в start() то там, мне кажется, надо использовать coroutineScope {} вместо withContext {}
Да, то что надо, спасибо
источник

А

Андрей in Kotlin JVM
А почему он из coroutineScope не выходит?
источник

А

Андрей in Kotlin JVM
Есть ли вариант запустить в фоне, и не дожидаться выполнения?
источник

В

Вафель in Kotlin JVM
Андрей
А почему он из coroutineScope не выходит?
Потому что coroutineScope ожидает выполнения всех дочерних корутин.
источник

В

Вафель in Kotlin JVM
Андрей
Есть ли вариант запустить в фоне, и не дожидаться выполнения?
Только если создовать отдельный scope и запускать на нём.
источник

А

Андрей in Kotlin JVM
Вафель
Только если создовать отдельный scope и запускать на нём.
Не представляю, как это будет выглядеть. Где-то можно найти пример?
источник

В

Вафель in Kotlin JVM
Андрей
Не представляю, как это будет выглядеть. Где-то можно найти пример?
думаю вам сюда
источник