Остановка loop в асинхронном скрипте
возможно дубликат вопроса, но ответа на свой вопрос я не нашёл. У меня есть софт на pyqt5, в котором по кнопке я запускаю и останавливаю (должен останавливать) асинхронный скрипт. *Дело в том что при попытке остановить, софт не останавливается а просто зависает. Без понятия как остановить скрипт.
Код в софте (main.py):
self.check.clicked.connect(self.start_check) #подключаю кнопку к функции
def start_check(self):
if self.check.isChecked():
self.check_ss() #функция запуска скрипта
else:
self.stop_checking() #функция остановки скрипта
def check_ss(self):
match gate:
case 0:
self.authorizeone = Authorize_One()
with open(cc_base, 'r+') as f:
ss = [line.rstrip() for line in f]
for s in ss: #цикл который по списку отправляет данные в асинхронный скрипт
self.authorizeone.run(ss=s)
def stop_checking(self):
self.authorizeone = Authorize_One() #инициализация класса из асинхронного файла
self.authorizeone.stop_check() #вызов функции с файла
Код в асинхронном скрипте (check.py):
def run(self, ss: str=None):
global loop
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(self.check(ss))
def stop_check(self):
#loop.stop()
print('Stopped')