python - 关闭时进程不会结束

标签 python tkinter

我用 Python 构建了一个网络抓取应用程序。它由三个主要部分组成:

  1. GUI(基于 tkinter 构建)
  2. 客户端(控制前端和后端之间的接口(interface))
  3. 后端代码(各种线程进程)。

我遇到的问题是,当用户点击 X 退出程序而不是通过界面退出时,似乎 root.destroy() 永远不会被调用,并且应用程序永远运行,即使窗口确实消失了。这最终会消耗大量的系统资源。

我尝试将所有线程设置为守护进程,但没有取得太大成功。还有其他原因导致程序退出后继续占用 CPU 吗?

最佳答案

您不想将所有线程设置为守护进程。您想将客户端线程和后端线程设置为守护进程。这样,当 GUI 线程终止时,daemon 设置为 True 的线程也会结束。

来自documentation :

A thread can be flagged as a “daemon thread”. The significance of this flag is that the entire Python program exits when only daemon threads are left.

关于python - 关闭时进程不会结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14265223/

相关文章:

python - 如何将 tkinter.StringVar 更改为整数类型

python - 插入空标签时如何防止 Tkinter labelframe 大小发生变化

python - 以像素为单位指定 Tkinter 文本小部件的尺寸?

Python 分割字符串

python - 生成 3D 验证码 [图片]

python - 我可以通过编译来提高 python 运行时吗?

python - 在pygame中使用文本输入

python - 语音识别无法正常工作(未检测到麦克风)

Python 转换疯狂

python - _tkinter.TclError : encountered an unsupported criticial chunk type "exIf"