То, что я пытаюсь сделать здесь, это использовать прерывание клавиатуры для выхода из всех текущих потоков в программе. Это сокращенная версия моего кода, где создается поток:
for i in taskDictionary:
try:
sleep(60)
thread = Thread(target = mainModule.executeThread)
thread.start()
except KeyboardInterrupt:
thread.__stop()
Сама программа намного сложнее, и она содержит множество различных переменных, которые влияют на потоки и даже имеют возможность запускаться в последовательном режиме, где задачи не являются потоковыми, но вместо этого запускаются один за другим, поэтому будь то некоторые проблемы с этой небольшой вариацией, которую я только что вызвал. Я сделал это таким образом, чтобы получить результаты 50/50. Прерывания будут работать, но потоки никогда не будут чисто выходить. Иногда они продолжали идти, но останавливали выполнение будущих потоков, иногда они выходили с массивной ошибкой в отношении прерывания, в других случаях прерывания ничего не делали. В прошлый раз, когда я запускал эту программу, программа прекратила выполнение любых будущих потоков, но не остановила текущий поток. Есть ли способ выйти из потоков, не входя в модуль, который фактически выполняет поток?