전체, 내 GUI에서 다중 처리 기능을 사용하고 있습니다. 하지만 풀은 여러 GUI를 시작합니다. 나는 코드에 if __name__ == '__main__':
을 추가한다고 읽었습니다. 그러나이 트릭이 제 경우에는 작동하는지,이 코드를 어디에 삽입해야하는지는 알지 못합니다. run_func() 함수는 GUI의 버튼으로 시작됩니다. 어떻게이 여러 시작을 차단할 수 있습니까?파이썬 다중 처리 풀 시작 다중 GUI
두 번째 질문이 있습니다. exec 끝에서 설정을 가져 오기 위해 어떻게해야합니까?
고맙습니다.
@pyqtSlot()
def run_func():
run="""
import os
import sys
from setup import *
print('toto')
print('titi')
"""
from multiprocessing import Pool
pool = Pool(processes=4)
asyncResult = pool.apply_async(exec(run),{},{}),range(1)
은 당신의 GUI는 setup.py에 출시되어 있습니까? 그것은'if __name__ == "__main __":'에 의해 보호되지 않습니다. 또한 정규 함수를 만들고 그것에 대해'apply_async'를 호출하는 것이 어떻습니까? 'exec'를 사용하는 것은 올바른 방법이 아닙니다. – dano
감사합니다. 내 GUI는 setup.py에서 시작되지 않습니다. 내 QMainWindow를 시작하는 QApplication을 시작하는 Main이 있습니다. 그런 다음 내 QMainWindow는 QAction.I에 의해 run_func()를 시작하여 직접 apply_async에 함수를 선언 할 수 있지만 여러 시작을 해결하지는 못합니다. – user3393374