gpt4 book ai didi

python - wxPython 应用程序在执行期间卡住

转载 作者:太空宇宙 更新时间:2023-11-04 06:20:46 24 4
gpt4 key购买 nike

我正在使用 python 2.7 和 wxpython 2.8 创建一个应用程序,它应该在文件列表上执行一个长循环(几个小时)。

我编写了一个按钮,当我按下它时应该中断循环,但在我启动应用程序的那一刻,它卡住了并且在循环结束之前我无法以任何方式进行交互。我还尝试使用 time.sleep 添加一小段 sleep 时间,最多 1 秒,这对速度非常不利并且无法解决问题。

有没有办法“在后台”运行这个循环,这样用户仍然可以修改一些参数,更重要的是停止循环?

我可以说循环不需要很多资源,它只需要很多时间,所以我不明白为什么它会卡住。

在此先感谢您的帮助!

最佳答案

在这类问题的标准解决方案中使用线程。 Processes and Events下的wxPython demo | Threads 有一个使用线程的工作示例。

从 wxPython(和大多数其他 guis)运行线程时会出现一些问题,因此您可能想阅读示例中的注释,也许还想阅读 wiki 以了解发生了什么,等等。特别是,wxPython 需要从主线程运行,所以你的文件处理在不同的线程中进行,然后你的文件处理应该使用 wx.PostEvent 或 wx.CallAfter 之类的东西与主线程通信。

关于python - wxPython 应用程序在执行期间卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12468644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com