Означает ли это, что я не могу использовать цикл событий в блоке кроме?
Вы можете продолжать использовать цикл событий, пока он не закроется.
Таким образом, нажатие ctrl + c не завершается, и мне приходится закрывать сам терминал.
Почему Ctrl+C
работает, потому что что-то работает, поэтому цикл не дает возможности принятьсигнал (Ctrl+C
).Например:
import asyncio
async def go():
await asyncio.sleep(60)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(go())
В соответствии с вашим последним редактированием, я полагаю, что перед отправкой сообщения вам заблокирована строка кода.Но что это такое, что вам нужно опубликовать свой cleanup_coro()
контент.Или вы можете использовать print()
, чтобы установить метку, а затем выяснить, какая строка кода находится на рассмотрении.
В чем разница между loop.close () и loop.stop (), и мне следует вызватьэти?В документах ничего не говорится о loop.stop ().
Вы можете представить, что loop.close () и loop.stop () похожи на следующую песню и останавливают эту песню.Если вам не нужна эта песня, значит следующая.Если вы хотите продолжить задачу позже, используйте stop
.Тем не менее, вам не нужно запускать задачу вообще, вы можете close
цикл.Примечание: если какие-либо задачи выполняются, вы должны остановиться перед закрытием