Estoy creando una aplicación GUI (wxPython). Necesito ejecutar otra aplicación (.exe) desde la aplicación GUI. El subproceso realizará alguna operación en una acción del usuario y devolverá una salida a la aplicación GUICómo ejecutar otro proceso en un bucle en un hilo diferente
Estoy ejecutando este subproceso en un bucle, de modo que constantemente el subproceso esté disponible para ejecutarse. Lo que estoy haciendo es iniciar un hilo (para que la GUI no se congele) y abrir el subproceso en un bucle. No estoy seguro si esta es la mejor manera.
self.thread = threading.Thread(target=self.run, args=())
self.thread.setDaemon(True)
self.thread.start()
def run(self):
while self.is_listening:
cmd = ['application.exe']
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
proc.wait()
data = ""
while True:
txt = proc.stdout.readline()
data = txt[5:].strip()
txt += data
Ahora lo que sucede es que, si la aplicación principal es apagado, el hilo sigue a la espera de una acción del usuario que nunca llegó. ¿Cómo puedo salir limpiamente? El proceso de la aplicación.exe todavía se puede ver en la lista de procesos, incluso después de que la aplicación GUI haya salido. Cualquier sugerencia para mejorar todo es bienvenida.
gracias
¿Por qué no estás usando 'wx.Process' /' wx.Execute() '? –