我想开发使用具有3-4个笔记本电脑面板及这些面板(主面板)中的一个wxPython的一个GUI调用名为abc.py.另一个python脚本 在这种abc.py我正在同时运行数个(> 10)的线程。 当我打主面板上的运行按钮启动abc.py脚本的这些并发线程。 我在这里面临的问题是我的wxPython的笔记本得到挂断之间的时间:“当我打运行按钮,高达所有线程都加入了”。 在这段时间里,我无法控制我的面板上的其他按钮我也没有能够面板之间切换。 我的窗口被冻结了这一段时间。 可能是什么问题呢? 如果任何人都可以引导我正确的路径,以避免这个问题的话,我真的会非常感激。 谢谢..!!!
Answer 1:
您还需要包装调用abc.py
(与popen
,我想)成线,否则GUI将阻止。 当外部脚本的过程中收集的答案,你必须把它找回来一个线程安全的方式(重要!),以wxPython
。
更好的办法是从进口abc.py
,如果这是可能的,在长时间运行的线程旋转导入的对象。
有关说明如何传送回线程安全看的wxPython的维基 。 我个人觉得最后一个例子是最容易理解和执行。
文章来源: wxpython notebook panel hangs when threads are running