我有一个python函数,它接受一些参数并执行一些任务(我们称之为theFunc)。当func运行时,内部变量resultingMessage得到越来越多的行,我在执行结束时将其显示在GUI上。理想情况下,我希望resultingMessage在GUI上显示和更新,而不是在func执行完成之后,并且在不污染func的情况下(这已经足够复杂了)。最好的办法是什么?在
我可以想到两种可能的方法(两种方法都很遥远):
我想应该有一个传统的方法来做。在
环境:cpython2.7、Win XP、WXPython
你应该使用线程。wxPython提供了几个线程安全的方法,例如wx.CallAfter公司, wx.CallLater公司以及wx.事件后. 你也可以把它们和pubsub结合起来发送消息!在你的例子中,我认为通过wx方法wx.CallAfter公司无论你想显示什么文本都可以。在
mikedriscoll的回答描述了最常用的方法。他在自己的网站上有一篇非常好的文章,详细介绍了here。他那里有很多很好的文章,看看吧。在
另一种方法是在主线程中设置一个计时器,用于检查队列中的消息。在init方法中设置队列,并将其传递给运行长时间运行函数的工作线程。worker根据需要将内容放入队列,与timer事件相关联的函数将在主线程中拾取消息/数据并更新GUI等。下面是一个简短的示例:
祝你好运,迈克
相关问题 更多 >
编程相关推荐