У меня есть код Python, который запускает CANalyzer и останавливает его через n секунд (определяется пользователем с графическим интерфейсом tkinter) внутри потока таймера. Вот код:
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 минут в моем тесте, поэтому эта ошибка действительно раздражает.
Спасибо