Druid, который ожидает в конце возвращение конкретных структур (в main), при том по задумке, я должен запускать при нажатии на кнопку в приложении ряд событий, некоторый из которых асинхронны. Поднять future мне просто некуда, чтоб её вызвать.
Попытался решить проблему через block_on() в функции, но это вызывает ошибку.
Как мне заставить выполняться асинхронные функции?
заспаунить таск в бэкграунде не подходит? сохранить куда-нибудь Handle на рантайм tokio и спаунить туда
Я пытался))) В общем не особо получилось. Там вызов должен быть внутри дочернего потока. Я бы всё синхронным сделал, но либа так не умеет (да и логичнее асинхронно, на самом деле)
вызов чего должен быть внутри дочернего потока? не понимаю твою проблему
чтобы послать что-то в друид, используй ExtEventSink
Ну тогда тебе https://docs.rs/tokio/latest/tokio/runtime/struct.Handle.html#method.block_on
Спасибо, пытался использовать, но решил отложить. Думаю стоит вернуться к этому, да. @MikailBag Спасибо, сейчас попробую.
вот у меня в проекте коммуникация между TCP-сервером и UI на друиде https://github.com/GoldsteinE/uuis/blob/master/src/server.rs https://github.com/GoldsteinE/uuis/blob/master/src/ui.rs
Это сработало, даже зависло приложение, так как оказывается у меня 15000 раз отправляется видео размером 100мб))
Спасибо, как раз хотел организовать всё эффективнее
ну тогда точно надо сделать это как-то по-умному. Чтобы UI тред получал какое-то событие от токио и уже его обрабатывал
Да, сейчас переделаю всё. Из-за проблем с асинхронностью у меня всё изначально криво пошло))
Обсуждают сегодня