2013-02-02 249 views
-1

我一直在做正常的python脚本多年,但最近不得不进入GUI(使用Tkinter)。简而言之,我有一个基本的Tk窗口,它带有一个启动/停止按钮,它应该调用功能Foo()。函数Foo()包含一个while True虽然,这将导致UI永远锁定。使用Python Tkinter GUI进行长时间运行的进程

我想知道如果我能从这里得到一些指导。我应该使用蟒蛇multiprocessing工具吗?我也在考虑Twisted/Gevent /线程,但我认为它们不适合这个任务(可能是错误的)。

谢谢!

+0

您尚未提供足够详细的关于您的任务是什么以及您想要完成什么。 –

+0

你想要做什么真正的问题? Foo毫无疑问不是你真正想做的事情。如果您可以描述Foo的真实本质,我们可能能够更好地为您服务,因为对于具有无限循环的虚拟Foo有效的方法可能无法解决您的实际问题。 –

+0

我试图保持这个逻辑尽可能脱离这个UI的一块。其次,Foo()不断监视数据库的工作,然后提出一个外部API请求。 API工作的方式是使用while while来读取事件。这些循环在它们中间有很小的睡眠,所以它实际上并没有撞击CPU或者真正的阻塞。 –

回答

1

我最终使用了python的multiprocessing库。我在一个新过程中开始Foo()并开始。当按下停止按钮时,它终止子过程。

相关问题