繁体   English   中英

Python:有什么方法可以在后台运行mainloop()吗?

[英]Python: Is there a way I can run mainloop() in the background?

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

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

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

后台线程和前台线程之间实际上并没有任何正式的区别。 处理您的消息的线程通常称为前台线程,但它与其他任何线程实际上并没有什么不同。 唯一的约定使我们引用线程的前台或后台。

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

可以启动一个长期运行的任务并使其频繁处理消息,但是这种方式需要对重新进入问题有敏锐的理解,并经常导致精神错乱。

如果要长时间运行后台任务,则可能需要线程。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM