Python:有没有办法在后台运行mainloop()?

时间:2011-03-24 14:40:06

标签: python tkinter main

有没有办法在后台运行mainloop()?我不想添加线程的复杂性。提前谢谢。

3 个答案:

答案 0 :(得分:3)

没有。 GUI框架的主循环必须始终在前台运行。

答案 1 :(得分:2)

不,你不能这样做。消息循环在其线程中运行并处理您的消息队列。

后台线程和前台线程之间没有任何官方区别。处理您的消息的线程通常称为前台,但它与任何其他线程并没有任何不同。这是唯一导致我们引用线程前景或背景的约定。

最终,带有消息循环的主线程将消息循环放在其调用堆栈的顶部,这就是它必须的方式。

可以启动一个长时间运行的任务并让它经常处理消息,但这种方式需要对重新入侵问题有敏锐的理解,并且经常导致精神错乱。

如果你想长时间运行后台任务,那么你可能需要线程。

答案 2 :(得分:0)

如何将消息循环保留在前台,以及在后台进行其他处理(例如,使用after方法)?特别是如果你不想使用线程。但是,我认为从长远来看,线程或进程可能会更好。