Остановка 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')

Ответы (0 шт):