全部,
在我的GUI中,我使用多处理来运行一个函数。但是池启动了多个GUI。
我已经读过人们在他们的代码中添加if __name__ == '__main__':
并且似乎有效。
但我不知道这个技巧是否适用于我的情况,以及我必须插入此代码的地方。
函数run_func()由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)
答案 0 :(得分:0)
您没有为您的问题提供太多背景信息。无论如何,我做了一个测试,从from setup import *
字符串中删除run
部分。所有运行良好,因此,不是PyQT问题,更像是在某些时候你再次执行运行GUI的模块/函数。
对于第一个问题:
我建议您使用调试器并在启动GUI的位置设置一些断点,然后您可以使用调用堆栈来调用您的GUI。这样,yuo就会知道“主要”代码块的位置,即使它确实是必要的。
由于调试器使用带有代码内断点的pdb(记住你在多进程中运行),请输入以下行:
import pdb; pdb.set_trace()
你想要设置一个断点。
关于第二个问题: