我有一个使用wxPython和一些其他线程的Python应用程序。一个主题使用PIL.Image.open
。在某些情况下,应用程序冻结,以便您看到不完整的GUI。我发现它挂在PIL.Image.open
。当我将调试print
放入PIL模块时,我可以看到它有一次挂在这里,有一次在那里...... - 我无法理解。这似乎完全不相关。
在Python中,线程可以做什么,导致其他线程停在实际无问题的行,如import string
?或者wxPython是否能够发挥这种影响力?
答案 0 :(得分:3)
长时间运行的任务将冻结GUI,如wxPython或Tkinter。将长时间运行的进程放入线程通常会解决问题。我猜你在你的线程中做了一些事情,它以非线程安全的方式与wxPython通信。如果你不使用wx.CallAfter,wx.CallLater或wx.PostEvent与线程中的wxPython进行通信,那就是问题所在。你必须使用其中一种方法。
否则我们需要一个小的可运行示例来诊断问题。