@Mars36

Можно ли вызвать из потока асинхронный метод или передать в поток асинхронный метод?

API с которым я пытаюсь работать требует асинхронных методов, есть задача, которая должно быть обработана параллельно, т.к. занимает много времени. Но передать данные/вызвать нужное API не выходит. Что я могу сделать?
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Сделай свою программу асинхронной. Асинхронным методам для выполнения требуется работающий цикл-реактор (loop в терминологии asyncio). Этот цикл занимает поток, и все асинхронные корутины выполняются в этом потоке. Без него ничего не выйдет.
Гипотетически можно запустить такой цикл в отдельном потоке и держать асинхронный код там. Но честно, лучше попробовать сделать свою программу асинхронной, если это возможно (т.е. если нет конфликтующих вечных циклов, как в GUI).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы