【问题标题】:wxpython notebook panel hangs when threads are running线程运行时 wxpython 笔记本面板挂起
【发布时间】:2015-02-17 08:41:59
【问题描述】:

我正在尝试使用具有 3-4 个笔记本面板的 wxpython 开发一个 gui,其中一个面板(主面板)调用另一个名为 abc.py 的 Python 脚本。在这个 abc.py 中,我同时运行几个(> 10)个线程。当我点击主面板上的运行按钮时,它会启动 abc.py 脚本的这些并发线程。 我在这里面临的问题是我的 wxpython 笔记本在以下时间之间挂起:“当我点击运行按钮并且所有线程都加入时”。在此期间,我无法控制面板上的其他按钮,也无法在面板之间切换。我的窗口在这段时间内被冻结了。 可能是什么问题呢?如果有人能指导我找到避免这个问题的正确途径,那么我将非常感激。谢谢..!!!

【问题讨论】:

    标签: wxpython python-multithreading wxnotebook


    【解决方案1】:

    您还需要将对abc.py(我想是popen)的调用封装到一个线程中,否则GUI 将阻塞。当外部脚本中的进程正在收集其答案时,您必须以线程安全的方式(重要!)将其返回到wxPython

    如果可能的话,更好的方法是从abc.py 导入并在长时间运行的线程中旋转导入的对象。

    有关如何以线程安全的方式返回通信的说明,请参阅the wxPython wiki。我个人觉得最后一个例子最容易理解和实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-28
      • 1970-01-01
      • 2016-01-11
      • 1970-01-01
      相关资源
      最近更新 更多