Size: a a a

Kotlin Community

2021 January 08

PE

Pavel Erokhin in Kotlin Community
вот тебе и последовательно
источник

U

Utya in Kotlin Community
а если эти функции крутяться в потоках? проблем не будет?
источник

PE

Pavel Erokhin in Kotlin Community
ну ты можешь запустить их последовательно, а выполняться будут уже независимо друг от друга
источник

ВМ

Валерий Маевский... in Kotlin Community
То есть стартуют сами другие потоки?
источник

U

Utya in Kotlin Community
я пилю приложение с ипользование dji sdk, и каждая эта функция запускает некие действия с дроном, судя по документакции, в sdk сипользуются потоки
источник

ВМ

Валерий Маевский... in Kotlin Community
Смотри
Если выход из функции == функция закончила работать
То последовательный их запуск будет делать ровно то, что нужно
источник

AN

Alexander Nozik in Kotlin Community
Utya
а если эти функции крутяться в потоках? проблем не будет?
Корутины гарантируют проядок выполнения внутри одной корутины
источник

ВМ

Валерий Маевский... in Kotlin Community
Иначе надо найти способ понять, что функция закончила работать, потому что это неочевидно
источник

U

Utya in Kotlin Community
Pavel Erokhin
ну ты можешь запустить их последовательно, а выполняться будут уже независимо друг от друга
в том то и дело мне нужно, чтобы это не создавало дополнительных поток иначе приложение теряет связь с дроном, выбрал корутины поэтому, видимо мне надо переделать чтобы эти функции возвращали что-то и уже по return запускать следующую
источник

PE

Pavel Erokhin in Kotlin Community
так а смысл тогда в корутинах
у тебя будет последовательный код и синхронный
источник

PE

Pavel Erokhin in Kotlin Community
что ты хочешь сделать? опиши
источник

ВМ

Валерий Маевский... in Kotlin Community
Приведу пример из андроида
startActivity() возвращается сразу, но все ожидаемые действия будут выполнены потом, для отслеживания этого есть свои сложные механизмы
С другой стороны, функция вроде outStream.writeAll() заблокирует выполнение программы до окончания записи. Это нормальное поведение функции.

Если твои функции ведут себя нормально — просто вызывай их подряд
Иначе внимательно изучи документацию по ним
источник

U

Utya in Kotlin Community
func1- читает данные сдрона
func2 их обсчитывает
func3-5 ещё что-то делает, когда я просто пишу друг за другом без корутин, оно всё крашиться, потому что видимо асинхронно запускается, а каждая функция работает над результатом предидущей
источник

AN

Alexander Nozik in Kotlin Community
Если вы не вызываете launch/async нигде, то никаких потоков не будет
источник

ВМ

Валерий Маевский... in Kotlin Community
Utya
func1- читает данные сдрона
func2 их обсчитывает
func3-5 ещё что-то делает, когда я просто пишу друг за другом без корутин, оно всё крашиться, потому что видимо асинхронно запускается, а каждая функция работает над результатом предидущей
Есть подозрения, что func3-5 на самом деле отправляют команды на дрон, а не делают то, что описано (что логично)
В таком случае внимательно посмотри, как планируется "ждать окончания выполнения"
источник

U

Utya in Kotlin Community
Валерий Маевский
Есть подозрения, что func3-5 на самом деле отправляют команды на дрон, а не делают то, что описано (что логично)
В таком случае внимательно посмотри, как планируется "ждать окончания выполнения"
да все функции обмениваются данными с дронам, и я так понимаю они все аснихронные, возможно мне и корутины и не нужны, и я не в ту степь залез
источник

ВМ

Валерий Маевский... in Kotlin Community
Да, не в ту
Смотри, как понять момент завершения операции в dji sdk
источник

U

Utya in Kotlin Community
Валерий Маевский
Да, не в ту
Смотри, как понять момент завершения операции в dji sdk
получается всё на обычных колбеках?
источник

ВМ

Валерий Маевский... in Kotlin Community
Возможно, я этим не пользовался
источник

U

Utya in Kotlin Community
ну я просто спрашиваю, чтобы знать чё гуглить)
источник