Hello, you just forgot to initialize the COM runtime for the separate thread. try following:
def __init__(self,matlab_command): self.matlab_command = matlab_command threading.Thread.__init__(self) def run(self): import pythoncom pythoncom.CoInitialize() try: matlab_object = Dispatch('matlab.application.single') execute = getattr(matlab_object,'Execute') execute(self.matlab_command) finally: matlab_object = None pythoncom.CoUnitialize() Stefan > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On > Behalf Of tsjuan > Sent: Saturday, November 11, 2006 2:56 PM > To: python-list@python.org > Subject: Python opening multiple thread of matlab > > Hello Python Users, > > I've been trying to run multiple thread of Matlab by calling > its com object via python. However, I keep getting error > message that says Python can't find the attribute of certain > function that I want to execute in Matlab. > > I know the com function is exist, it works just fine if I > don't run within thread. > Below is my sample code, any helps or comments are appreciated. > > Thanks, > Tanto > > import threading > from win32com.client import Dispatch > > > class MyThread ( threading.Thread ): > > def __init__(self,matlab_command): > self.matlab_command = matlab_command > self.matlab_object = Dispatch('matlab.application.single') > threading.Thread.__init__(self) > > def run(self): > execute = getattr(self.matlab_object,'Execute') > execute(self.matlab_command) > > def awesome_dud(self): > execute = getattr(self.matlab_object,'Execute') > execute(self.matlab_command) > > > a = MyThread('a=1:1:100') > b = MyThread('b=1:1:200') > > # Running matlab function through thread (It's not working) # > ========================================================= > > a.start() > b.start() > a.join() > b.join() > > # Running matlab function not through thread (it's working) # > ========================================================= > a.awesome_dud() > b.awesome_dud() > > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list