如何从 Tkinter 窗口立即停止 Python 进程?

2023-11-22

我有一个 Python GUI,用来测试我工作的各个方面。目前我有一个“停止”按钮,可以在每个测试结束时终止进程(可以设置多个测试同时运行)。但是,有些测试需要很长时间才能运行,如果我需要停止测试,我希望它立即停止。我的想法是使用

import pdb; pdb.set_trace()
exit

但我不确定如何将其注入到下一个运行的代码行中。这可能吗?


如果是线程,则可以使用较低级别的thread (or _thread在Python 3)模块中通过调用杀死异常线程thread.exit().

来自文档:

  • thread.exit():提高系统退出例外。没被抓到的时候, 这将导致线程静默退出。

一种更干净的方法(取决于处理的设置方式)是使用实例变量向线程发出停止处理并退出的信号,然后调用join()方法从主线程等待,直到线程退出。

Example:

class MyThread(threading.Thread):

    def __init__(self):
        super(MyThread, self).__init__()
        self._stop_req = False

    def run(self):
        while not self._stop_req:
            pass
            # processing

        # clean up before exiting

    def stop(self):
        # triggers the threading event
        self._stop_req = True;

def main():
    # set up the processing thread
    processing_thread = MyThread()
    processing_thread.start()

    # do other things

    # stop the thread and wait for it to exit
    processing_thread.stop()
    processing_thread.join()

if __name__ == "__main__":
    main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Tkinter 窗口立即停止 Python 进程? 的相关文章

随机推荐

  • 在 Java DOM 中获取节点的内部 XML 作为字符串

    我有一个 XML org w3c dom Node 如下所示
  • GCP Kubernetes 工作负载“没有最低可用性”

    背景 我正在尝试在 Google Cloud Platform 上设置 Bitcoin Core regtest pod 我借用了一些代码https gist github com zquestz 0007d1ede543478d44556
  • UICollectionView:组合布局禁用预取?

    我有一个非常简单的UICollectionView它使用组合布局轻松实现动态单元高度 不幸的是 这样做似乎会禁用内容预取UICollectionViewDataSourcePrefetching 在下面的示例代码中 collectionVi
  • Ruby 中括号周围的间距

    我最近在使路径正常工作时遇到了一些问题 事实证明 解决方案很简单 但我遇到了一个意想不到的问题 阻止了我实现它 erb 模板中包含的以下行可以完美运行 这个没有 在这种情况下 左括号前似乎不允许有空格 我得到的错误是这样的 app view
  • 使用适用于 SQL Server 的 PHP 且不使用 PDO 来防止 SQL 注入 [重复]

    这个问题在这里已经有答案了 我可以尽可能地清理和验证我的输入 但这绝对不能涵盖所有内容 如果我足够努力 足够彻底地擦洗 我将完全擦除我的输入 我意识到有很多关于这个主题的帖子 但似乎他们总是回到 PDO 或 Mysql 是的 即使有人发布有
  • Jenkins 将徽章设置为预构建步骤

    我不确定这里的术语是否完全正确 所以我会尽力解释 我使用 Jenkins 来运行 Java 自动化 有许多长时间运行 2 10 小时 的作业针对被测产品的不同版本不断执行 我需要一种方法来快速查看作业的 构建历史记录 框 并查看哪个作业正在
  • 鼠标悬停时播放 Gif 并在鼠标移开时暂停 Gif 而不替换图像?

    我正在尝试寻找一个代码示例 该示例允许用户在鼠标悬停时制作 gif 动画 并在鼠标移出时暂停 我看过很多教程都在谈论这个 但我想要不同的效果 我注意到大多数 GIF 在鼠标移开时都会 重置 也就是说 要么 gif 被通用图像覆盖 要么动画恢
  • 实时模板匹配 - OpenCV、C++

    我正在尝试使用模板来实现实时跟踪 我希望每一帧都更新模板 我所做的主要修改是 1 将模板匹配和minmaxLoc分成单独的模块 即 TplMatch and minmax 函数 分别 2 内部track 函数中 select flag 始终
  • gcov 可以处理共享对象吗?

    我最近使用 gcov 来收集代码覆盖率信息 gcov 与可执行应用程序配合得很好 但是当我尝试加载 so 文件时 出现此错误 未知符号 gcov merge add 然后我在谷歌上搜索 有人说添加 lgcov 到链接标志 LDFLAGS 我
  • 在 Excel 2019 中应用 IRibbonUI.ActivateTab

    我有现有的 VBA 代码 我的 在 Excel 2010 中工作 可激活自定义功能区选项卡 IRibbonUIObjectName ActivateTab tabID 该代码作为子程序中的标准操作存在 用于处理活动窗口的更改 在相关时激活选
  • Node.js setInterval() 在 25 天后停止执行

    在我的 Node js 应用程序中 我使用setInterval 每 1 小时运行一次特定功能 该函数正常执行大约 25 天 然后计时器停止触发 25 天似乎非常接近 Node js 的时间TIMEOUT MAX 2 31 毫秒 25 天
  • ASP.net MVC 中的自定义表单身份验证/授权方案

    我正在尝试使用表单身份验证在 ASP NET MVC 中创建自定义身份验证方案 我的想法是 我可能会在网站上有不同的区域进行管理 批准者区域和一般用户区域 并且这些区域将使用不同的登录页面 等等 这就是我想要发生的事情 用户访问受限页面 现
  • 仅显示 UIView 的角点

    如何只显示 UIView 的角点 let view UIView view layer borderColor UIColor white cgColor view layer borderWidth 2 let maskframe UIV
  • Firebase Cloud Function 已完成,状态为:“响应错误”

    我有一个云函数 它返回大量数据 50 000 个文档 作为对象 当我运行它时 我收到错误finished with status response error 仅当我导出所有数据时才会发生这种情况 当应用限制 最多 20 000 时 它可以
  • Swift 中的dispatch_once 示例

    有没有例子说明如何调度一次应该在 Swift 中使用吗 最好是苹果公司的 注意 在这种情况下 我不将其用于单例 我想运行任意代码一次 Update 我主要对在实例方法中使用此方法时推荐的约定感兴趣 但为了完整性起见 在类方法 函数和全局上下
  • 应用程序报告需要很长时间才能更新

    应用程序报告和电源管理报告需要大量时间来刷新 我注意到我的设备电池电量为 88 但在电源管理报告中电池电量仍然为 40 此外 当我更新设备上的应用程序时 应用程序报告花了很多时间才能获取更新的版本代码 有什么方法可以从设备获取最新报告吗 我
  • 从 scapy 数据包中获取信息字符串

    我在我正在构建的工具中以非交互方式 即作为库 使用 scapy 2 3 1 dev 我想获取有关数据包的一串人类可读的信息 例如您从scapy all Packet show 我尝试过使用所有三种方法 packet show packet
  • SQL Server BCP:如何在所有字段周围加引号?

    我有这个 BCP 命令 bcp DBName vieter out c test003 txt c T t S SERVER 我得到的输出 CSV 不会在字段名称周围加上引号 而是将其放在逗号周围 我怎样才能得到 t 在所有字段周围加上引号
  • Java:从日期获取月份整数

    如何从 Date 对象中获取整数月份 java util Date java util Date date new Date Calendar cal Calendar getInstance cal setTime date int mo
  • 如何从 Tkinter 窗口立即停止 Python 进程?

    我有一个 Python GUI 用来测试我工作的各个方面 目前我有一个 停止 按钮 可以在每个测试结束时终止进程 可以设置多个测试同时运行 但是 有些测试需要很长时间才能运行 如果我需要停止测试 我希望它立即停止 我的想法是使用 impor