2" parallel" wxpython GUI可能吗?

时间:2016-04-21 00:29:41

标签: multithreading user-interface parallel-processing wxpython

我刚开始一份新工作。现有代码是部分实现的wxpython GUI。首先是有2个独立的GUI:一个是带有测试中止按钮的#34;状态监视器"另一个是测试执行官,运行可能需要几分钟的测试。

任何时候都应该按下状态监视器GUI中止按钮以停止在执行GUI中运行的长时间运行的测试脚本进程。

长脚本进程在一个新线程中启动,并且正在使用测试执行GUI,但无论我做什么,状态监视器GUI都会被冻结。

我在pyside做了类似的事情,它似乎与wxpython一样多。

我不认为这是一个线程问题。看起来像是一个wxpython问题。

是否可以从同一个脚本启动2个独立的wxpython GUI?我似乎已经阅读过某个地方,只需要一个主循环。

2个并行独立GUI的任何提示/示例都会很棒!

1 个答案:

答案 0 :(得分:0)

是和否。

据我所知,不可能只运行两个由线程分离的GUI。

我们有一个非常相似的问题。由于我们主要使用Windows,我们需要解决Python GIL问题,以使GUI能够停止执行测试的子进程。

为了做到这一点,我们转移到多处理库,我们正在使用Processpool执行测试(我们同时运行多个项目 - 您只能使用一个流程来实现)。在新的流程中,您还可以执行第二个GUI,它完全独立(我们也这样做)。当使用另一个进程时,它会得到一个PID,可以与os.kill一起使用。主GUI将在此期间保持稳定。

为了与新进程通信,我们使用Pyro4,但您也可以使用Queues方法来完成通信。如果您使用类似于线程方法的Windows,则无法直接访问其他进程中的数据。

希望这有帮助。

此致 迈克尔