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

2024-04-26 09:31:33 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

Tags: 模块方法代码importself时间timeout解决方案
1条回答
网友
1楼 · 发布于 2024-04-26 09:31:33

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

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

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

相关问题 更多 >