Я открываю одно приложение в потоке, используя self.app. Мне нужно управлять self.app другим потоком или функцией.
Я могу открыть, запустить, остановить одним потоком, но когдаЯ пытался начать с другого потока, он дает ошибку.
def __init__(self, parent):
self.App = None
self.App1 = None
wait_flag=0
def OnButtonRUNButton(self, event):
thread.start_new_thread(self.InitializeApplication,())
if(wait_flag==0):
sleep(1)
self.start()
def InitializeApplication1(self):
self.App1=Dispatch('X.Application')
self.App1.Open(self.EnvRbsTesternamePath)
if self.App1.Measurement.Running == False:
self.App1.Measurement.Start()
sleep(1)
if self.App1.Measurement.Running == True:
PrintComment ("MEASUREMENT STARTED" , Enable)
if self.App1.Measurement.Running == True:
self.App1.Measurement.Stop()
sleep(1)
if self.App1.Measurement.Running == False:
PrintComment ("MEASUREMENT SToped" , Enable)
wait_flag=1
def start(self):
if self.App1.Measurement.Running == False:
self.App1.Measurement.Start()
sleep(1)
if self.App1.Measurement.Running == True:
PrintComment ("MEASUREMENT STARTED" , Enable)
Фактический результат: Отображается ошибка как:
_getattr__ return self._ApplyTypes_(*args)File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 456, i
ApplyTypes_ self._oleobj_.InvokeTypes(dispid, 0, wFlags, retType, argTypes, *args),wintypes.com_error: (-2147417842, 'The application called an interface that wmarshalled for a different thread.', None, None)
Ожидаемый результат: it should run through different thread or function