1
我有一些doA()方法偶爾掛起一段時間。 Python中是否有通用模塊可以控制doA()執行的時間並中斷它? 當然,它可以通過線程來實現,所以繞線模塊的簡單包裝可能是很好的解決方案。在Python中的任意時間執行中斷方法
換句話說,我想有這樣的代碼:
import CoolAsyncControl
CoolAsyncControl.call(self.doA, timeout = 10)
我有一些doA()方法偶爾掛起一段時間。 Python中是否有通用模塊可以控制doA()執行的時間並中斷它? 當然,它可以通過線程來實現,所以繞線模塊的簡單包裝可能是很好的解決方案。在Python中的任意時間執行中斷方法
換句話說,我想有這樣的代碼:
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
與給定的參數。
謝謝!這正是我要找的。當然,我的意思是self.doA在我的代碼中 – shuvalov 2010-02-18 18:39:28