如何停止执行器中的循环运行?

2023-12-21

我正在运行需要时间才能完成的功能。用户可以选择停止此功能/事件。有没有一种简单的方法来停止线程或循环?

class ThreadsGenerator:
    MAX_WORKERS = 5

    def __init__(self):
        self._executor = ThreadPoolExecutor(max_workers=self.MAX_WORKERS)
        self.loop = None
        self.future = None

    def execute_function(self, function_to_execute, *args):
        self.loop = asyncio.get_event_loop()
        self.future = self.loop.run_in_executor(self._executor, function_to_execute, *args)

        return self.future

我想当用户单击停止按钮时尽快停止该功能,而不是等待完成其工作。

提前致谢!


有没有一种简单的方法来停止线程或循环?

您无法强制停止线程。要实现取消功能,您的函数需要接受should_stop参数,例如一个实例threading.Event https://docs.python.org/3/library/threading.html#threading.Event,偶尔检查是否已设置。

如果您确实需要强制停止,并且您的函数可以通过以下方式在单独的进程中运行多重处理 https://docs.python.org/3.7/library/multiprocessing.html,您可以在单独的进程中运行它,并在应该停止时终止该进程。看这个答案 https://stackoverflow.com/a/52938384/1600898在 asyncio 的背景下详细阐述该方法。

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

如何停止执行器中的循环运行? 的相关文章

随机推荐

  • 使用属性文件的 log4j 的多个过滤器

    我正在尝试使用此配置过滤日志消息 我假装忽略包含文本的消息Could not refresh JMS Connection for destination以及那些包含org apache activemq transport failove
  • 以 C# 形式创建 Windows 10 透明度效果

    如何创建在 Windows 10 中看到的透明效果 像这样的事情 我不知道如何在 C 中解决这个问题 从逻辑上讲 每次表单进入焦点时我都会拍摄桌面快照 然后对其进行模糊处理并将其放置在 0 0 屏幕到客户端坐标 处 这似乎不太有效 有什么帮
  • 为什么 NuGetPack 响应“无法创建没有依赖项或内容的包”

    我正在尝试使用以下蛋糕脚本 Task Create NuGet Packages IsDependentOn Build WithCriteria gt DirectoryExists parameters Paths Directorie
  • 如何在android中动态设置谷歌地图上的缩放级别?

    面临在 Android 谷歌地图中设置动态缩放级别的问题 就像在地图应用程序 android 的系统应用程序 中做的那样 我使用了下面的地图方法 mGoogleMap moveCamera CameraUpdateFactory newLa
  • 应用程序中的 UTC 时间相关问题(C#、ASP.NET 和 SQL)

    我正在开发一款与销售和采购报告相关的应用程序 我正在使用该采购和销售报告的数据生成图表 采购订单和销售订单的创建日期是相对于 UTC 5 30 时间的 即该时间适用于印度孟买 场景 1 假设这是一个场景 目前这个应用程序在印度用于这个场景
  • 未达到 OpenIdConnectEvents.OnTokenValidated

    使用asp net core 2 2 我的启动中有以下内容 我到达 OnRedirectToIdentityProvider 断点 然后到达 appsettings CallbackPath 中的相对路径 但我没有到达 OnTokenVal
  • 将第一个和第二个单词包裹在 span 类 PHP 中

    我正在使用 php 自生成的导航 我需要将第一个和第二个单词包装在单独的 div 类中 例如 li span First span span class word Second span Word li 目前我可以使用将第一个单词包装在跨度
  • SourceTree 中的壁球

    是否可以在 SourceTree 中进行压缩 我看到显然你可以 拖放 提交来压缩它们 然而 当我这样做时 它只会突出显示几个提交 更新答案 Windows 源树 从 1 5 版本开始 http blog sourcetreeapp com
  • 使用枢轴重新排序多索引数据框

    我有一个数据框 df1 如下所示 df1 pd DataFrame ID 1 2 3 4 5 6 date 1 1 1 2 2 2 p id 1 2 3 1 2 3 9h30 0 11 0 12 0 13 0 14 0 15 0 16 9h
  • PHP 致命错误:找不到类“CTestCase”

    只是尝试在我的本地机器上运行一个简单的测试 但出现以下错误 PHP Fatal error Class CTestCase not found in 跑步时 phpunit UserTest 我想我的配置一定缺少什么 我就是不明白是什么 U
  • 在屏幕中间对齐 Foundation 5 选项卡

    我正在尝试对齐 Foundation 5 附带的开箱即用选项卡 出于某种原因 默认情况下它们是向左对齐的 我不知道如何让它们与屏幕中心对齐 我正在使用的代码相当简单 沼泽标准选项卡标记 Example ul class tabs li cl
  • 清除元素前后的浮动

    我有一系列的元素float left 彼此身上 理想情况下 我想用一个类清除单个元素两侧的浮动 而不添加另一个类clear left 在非浮动元素之后 示例 其中 one line应该在自己的线路上 http jsbin com koniv
  • 从 R 函数返回绘图

    为什么我的 R 函数不返回或打印绘图 代码如下 除了情节之外 所有代码似乎都运行良好 无论我做什么 我都无法让 R 在调用函数时创建绘图 在网上查了一下 我找不到任何不起作用的原因 powerc fun lt function n sigm
  • 为什么递归优于迭代?

    迭代比递归性能更高 对吧 那么为什么有些人认为递归比迭代更好 用他们的话说更优雅 我真的不明白为什么像Haskell这样的语言不允许迭代并鼓励递归 鼓励性能不佳的东西 当有更高性能的选项 即递归可用时也是如此 这不是很荒谬吗 请阐明这一点
  • 我们如何在 localStorage 中存储字符串?

    我正在学习 javascript xml 和 html 对于家庭作业 我需要从 XML 文件的某些节点检索一些数据 连接数据 并将连接的字符串存储在 localStorage 中 我在将连接的字符串存储在 localStorage 中时遇到
  • java异常会终止整个java应用程序吗?

    我曾经认为当异常发生时 整个java应用程序都会被终止 例如 我编写一个测试函数来测试我的想法 public void test File fileDir new File sourceDataDir if fileDir exists F
  • 为什么从 x86_64 汇编函数调用 C abort() 函数会导致分段错误 (SIGSEGV) 而不是中止信号?

    考虑该程序 main c include
  • setAngle 不是 Fabricjs 的函数

    我最近开始使用fabricjs 我有一个关于连接对象的问题 我正在创建用于连接的示例演示parent object to child object用箭头连接 我得到了示例演示http kpomservices com HTML5Canvas
  • 将对角线转置为 Google 电子表格中的行?

    我试图找到一个可以返回数组对角线的公式A1 D4如下 A1 B2 C3 D4 我找到了这个 它返回一列 但我不知道如何对一行中的值进行排序 INDEX A1 D1 ROWS 1 1 粘贴到下面的列中 A TRANSPOSE对结果当然可以解决
  • 如何停止执行器中的循环运行?

    我正在运行需要时间才能完成的功能 用户可以选择停止此功能 事件 有没有一种简单的方法来停止线程或循环 class ThreadsGenerator MAX WORKERS 5 def init self self executor Thre