С помощью следующего фрагмента я не могу понять, почему бесконечная задача не отменяется (она продолжает рассылать спам «Я все еще стою»)
В режиме отладки Я вижу, что Задача, хранящаяся в незавершенном, действительно помечена как Отмененная, но очевидно, что поток не отменен/не уничтожен.
Почему поток не уничтожается, когда задача переноса отменена?
Что мне сделать, чтобы остановить поток?
import time
import asyncio
def quickTask():
time.sleep(1)
def infiniteTask():
while True:
time.sleep(1)
print("I'm still standing")
async def main():
finished, unfinished = await asyncio.wait({
asyncio.create_task(asyncio.to_thread(quickTask)),
asyncio.create_task(asyncio.to_thread(infiniteTask))
},
return_when = "FIRST_COMPLETED"
)
for task in unfinished:
task.cancel()
await asyncio.wait(unfinished)
print(" finished : " + str(len(finished))) # print '1'
print("unfinished : " + str(len(unfinished))) # print '1'
asyncio.run(main())
Подробнее здесь: https://stackoverflow.com/questions/714 ... the-thread
Python asyncio — отмена задачи `to_thread` не остановит поток ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Отмена фона выполнения задачи, когда пользователь нажимает на кнопку «Отмена
Anonymous » » в форуме JAVA - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Отмена фона выполнения задачи, когда пользователь нажимает на кнопку «Отмена
Anonymous » » в форуме JAVA - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Asyncio Async Funcitons вешает с Asyncio.gather. (Код работает без Asyncio.gather)
Anonymous » » в форуме Python - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-