Skip to main content
 首页 » 编程设计

python之在 Python 中的任意时间后中断方法执行

2025年05月04日18dudu

我有一些方法 doA() 偶尔会挂起一段时间。 Python 中有没有什么通用模块可以控制 doA() 执行的时间并中断它? 当然,它可以通过线程实现,因此围绕线程模块的简单包装器可能是一个很好的解决方案。

换句话说,我想要这样的代码:

import CoolAsyncControl 
CoolAsyncControl.call(self.doA, timeout = 10) 

请您参考如下方法:

您可以使用 threading.Timer调用thread.interrupt_main , 只要您在主线程中运行 doA 。请注意,您想要的语法是不可能的,因为 Python(与大多数语言一样,例如 Haskell 除外)是“急切的”——在执行调用之前完全计算参数,因此 self.doA() 会在 call 方法有任何机会对此做任何事情之前运行到完成!你必须使用一些语法,例如

CoolIt.call(self.doA, args=(), timeout=100) 

以便 call 可以在使用给定参数执行对 doA 的调用之前设置计时器。