【问题标题】:What's the cause freezing at 3 methods?3种方法冻结的原因是什么?
【发布时间】:2012-07-13 01:14:11
【问题描述】:

我在 wxPython 应用程序中有 3 个线程。应用程序在以下三种方法挂起:

您知道造成这种情况的常见原因是什么吗?

【问题讨论】:

    标签: python multithreading wxpython


    【解决方案1】:

    我不知道到底发生了什么,但我猜你没有使用 wxPython 的线程安全方法与 GUI 进行通信。它们是 wx.CallAfter、wx.CallLater 和 wx.PostEvent。不要直接访问 GUI。

    如果它们实际上是在不同的线程中,那么它们不应该导致 GUI 挂起。我已经在我博客上的一个线程中完成了 time.sleep() ,所以我知道它没有:

    http://www.blog.pythonlibrary.org/2010/05/22/wxpython-and-threads/

    我们可能需要一个可运行的小型示例应用来解决这个问题:http://wiki.wxpython.org/MakingSampleApps

    【讨论】:

    • 我的代码中实际上有CallAfter。我发现如果我注释掉 wx.CallAfter(self._animation_gauge.Pulse) 应用程序不会挂起。我无法理解。
    • 我也不确定。看起来是对的。你应该去 wxPython 用户组询问。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 2019-12-06
    • 2017-06-09
    • 2011-07-29
    • 1970-01-01
    相关资源
    最近更新 更多