Я создаю приложение с графическим интерфейсом (wxPython).Мне нужно запустить другое (.exe) приложение из приложения с графическим интерфейсом.Подпроцесс выполнит некоторую операцию над действием пользователя и вернет вывод приложению с графическим интерфейсом
Я запускаю этот подпроцесс в цикле, так что подпроцесс постоянно доступен для выполнения.То, что я делаю, я запускаю поток (чтобы графический интерфейс не зависал) и открывал подпроцесс в цикле.Не уверен, что это лучший способ.
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
Теперь, что происходит, если основное приложение закрывается, поток все еще ожидает действия пользователя, которое никогда не наступало.Как я могу выйти чисто?Процесс application.exe все еще можно увидеть в списке процессов даже после выхода из приложения с графическим интерфейсом.Любые предложения по улучшению всего приветствуются.
спасибо