Estoy tratando de ejecutar un subproceso en el bucle while, pero aparece el error RuntimeError: threads can only be started once favor, sugiera una forma de solucionarlo.
import sys import threading import time import keyboard def hd(): time.sleep(1) print("hello") cc = threading.Thread(target=hd) while True: time.sleep(3) if keyboard.is_pressed("q"): print("Q is pressed") sys.exit() else: if not cc.is_alive(): cc.start()Mira esta publicación: enlace . Proporciona una buena idea de su pregunta.
Básicamente, los subprocesos se destruyen una vez que se han completado. Editar su declaración else a algo como esto podría lograr la tarea en cuestión:
if not cc.is_alive(): cc = threading.Thread(target=hd) cc.start()