我有一个 python 代码启动 CANalyzer 并在计时器线程内的 n 秒后停止它(由用户使用 tkinter GUI 定义)。这是代码:
pythoncom.CoInitialize()
CANalyzer = win32com.client.Dispatch('CANalyzer.Application')
self.CAN_id = pythoncom.CoMarshalInterThreadInterfaceInStream(pythoncom.IID_IDispatch, CANalyzer)
然后在线程中:
def timer_Stop_reply(CAN_id):
pythoncom.CoInitialize()
CAN = win32com.client.Dispatch(
pythoncom.CoGetInterfaceAndReleaseStream(CAN_id, pythoncom.IID_IDispatch)
)
CAN.Measurement.Stop()
self.stopped_DSE=1
pythoncom.CoUninitialize()
print('\n=== Stopping Trace ===')
不幸的是,400 秒后有一种超时,事实上,我得到了这个错误(-2147417848, 'The object invoked has disconnected from its clients.', None, None)
。我怎样才能避免这个问题?有没有类似保命的东西?我需要在测试中运行 CANalyzer 超过 10 分钟,所以这个错误真的很烦人。
谢谢