T
Teja
Hi all,
I have a GUI applicaion(along with threads). When the run button is
pressed in the GUI a separate thread starts( Thread is created using
beginthreadex) and does the
required activity.
Now, while the thread is being executed, i want the locals() present
inside the thread's run function to be avaialbe in the GUI class from
where the thread class is being created
EG:
----------------------
main.py
--------------------------
class WorkerThread(threading.Thread):
def __init__(self, ):
threading.Thread.__init__(self)
# Start the thread and invoke the run method
self.start()
def run(self):
# Start the thread. It executed self.func() as a separate
thread
self.workerThread, tid = win32process.beginthreadex(None,
0 , self.func ,(), 1)
.......
def func(self):
execfile(temp.py)
class GUI(wxFrame):
def __init__(self):
.....
.....
def CreateThread(self):
self.workerThread = WorkerThread()
if name == _main_:
.....
.. ....
.. .....
---------------------
temp.py
------------------
i = 1
j = 2
k = 4
while(10000):
print i
print j
print k
i = 1+1
j = j+2
k = k + 3
Now, while the thread is executin func and printing i, j, k , In the
main GUI thread how do i get the values of i, j ,k
I tried with sys.modules, sys._current_frames, vars(). But nothing
worked out.
Ideally the locals() of func() should be passed to the GUI thread,
how?
I have a GUI applicaion(along with threads). When the run button is
pressed in the GUI a separate thread starts( Thread is created using
beginthreadex) and does the
required activity.
Now, while the thread is being executed, i want the locals() present
inside the thread's run function to be avaialbe in the GUI class from
where the thread class is being created
EG:
----------------------
main.py
--------------------------
class WorkerThread(threading.Thread):
def __init__(self, ):
threading.Thread.__init__(self)
# Start the thread and invoke the run method
self.start()
def run(self):
# Start the thread. It executed self.func() as a separate
thread
self.workerThread, tid = win32process.beginthreadex(None,
0 , self.func ,(), 1)
.......
def func(self):
execfile(temp.py)
class GUI(wxFrame):
def __init__(self):
.....
.....
def CreateThread(self):
self.workerThread = WorkerThread()
if name == _main_:
.....
.. ....
.. .....
---------------------
temp.py
------------------
i = 1
j = 2
k = 4
while(10000):
print i
print j
print k
i = 1+1
j = j+2
k = k + 3
Now, while the thread is executin func and printing i, j, k , In the
main GUI thread how do i get the values of i, j ,k
I tried with sys.modules, sys._current_frames, vars(). But nothing
worked out.
Ideally the locals() of func() should be passed to the GUI thread,
how?