Есть ли способ использовать self.app из одного потока в другой поток? - PullRequest
0 голосов
/ 15 февраля 2019

Я открываю одно приложение в потоке, используя 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...