I try to use multithreading in ACT ironPython. The code is as follow:
# -*- coding: utf-8 -*-
import threading
import time
class PythonThreads():
def __init__(self):
self.threads = []
def Add(self, func, args = None):
t = self.Thread(func,args)
self.threads.append(t)
def Run(self):
for t in self.threads:
t.start()
def Join(self, Count = None, Label = None):
for t in self.threads:
t.join()
for t in self.threads:
if not t.is_alive() and Count != None:
Count[0] += 1
def GetResults(self):
Results = [None] * len(self.threads)
for index, t in enumerate(self.threads):
Results[index] = t.getResult()
return Results
class Thread(threading.Thread):
def __init__(self, func, args = (), name=''):
threading.Thread.__init__(self)
self.name = name
self.func = func
self.args = args
def run(self):
if self.args == None:
self.args = ()
self.result = self.func(*self.args)
def getResult(self):
return self.result
tt = PythonThreads()
def test():
time.sleep(5)
return 1
thread1 = PythonThreads()
t1 = time.time()
for i in range(3):
thread1.Add(test)
thread1.Run()
thread1.Join()
result = thread1.GetResults()
t2 = time.time()
print t2-t1
print result
# Results = tt.GetResults()
# ExtAPI.Log.WriteMessage(str(Results))
This can work using "C:\Program Files\ANSYS Inc\v231\commonfiles\IronPython\ipy.exe" testThread.py in CMD command shell.
But in ACT, it is occur error.
