Это всего лишь пример, но может возникнуть больше ситуаций. Предположим, у вас есть исполняемый файл из файла «myscript.py» с бесконечным значением true, но на самом деле это условие, извлеченное из файла,
# myscript.py file to be executed..
bool_condition = True
while bool_condition :
bool_condition = pickle.load(open('file_condition.p','rb'))
# -- script lines under while-condition -- #
# endwhile bool_condition
В принципе это бесконечно, если только другой скрипт не изменит содержимое файла file_condition.p. Теперь рассмотрим GUI, что активация исполняемого файла происходит от нажатия кнопки, а остановка исполняемого файла также происходит от действия кнопки, так что, если вы нажимаете кнопку остановки, меняется содержимое condition.p, и, следовательно, также переменная "bool_condition" от True до False, и, следовательно, выполнение останавливается.
Ключ в том, что когда нажата кнопка пуска, появляется строка, которая запускает выполнение «myscript», не дожидаясь окончания выполнения этой строки (потому что в противном случае старт-кнопка зависает, и вы не можете нажать кнопку остановки -кнопка). Я знаю, как выполнить параллельное выполнение без ожидания из файла "myscript.py" файла python,
pid = subprocess.Popen([os.sys.executable, "myscript.py"],
stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
однако он не работает из файла * .exe, "myscript.exe",
# 1st try..
pid = subprocess.Popen([os.sys.executable, "myscript.exe"],
stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
# 2nd try..
pid = subprocess.Popen(os.system(myscript.exe), stdout=subprocess.PIPE,
stderr=subprocess.PIPE, stdin=subprocess.PIPE)
Для меня невозможно думать, что Python не способен выполнять параллельное выполнение файла * .exe без ожидания (то есть без ожидания завершения выполнения, например os.sys (myscript.exe)). Действительно ли Python способен на это?