Close Threading
Phil Hornby
phil.hornby at accutest.co.uk
Mon Feb 2 06:55:50 EST 2004
Jose,
>> I start the threading process with t.start()
>> How can i do to close the threading process?
You have several options - depending on the structure of your code - how you
are using your threads. Not claiming any are the best or only ways....but
they are the ways I have used...
If for example you are using event to trigger a thread you could have an
event to trigger ending the thread - and use waitformultipleobjects from
win32all (or equivalent) and then simply allow your run() method to end.
e.g.
class mytheard(threading.Thread):
def run():
# do some init
self.dosomeinit()
while 1:
obj = waitformultipleobjects() # needs some params i think...
if obj == shutdown_obj:
break
else:
# do something
self.dosomething()
# do some shutdown
self.dosomeshutdown()
def end():
shutdown_obj.set()
Or
If you have a thread that is generally doing something then you can use a
simple flag.
e.g.
class mytheard(threading.Thread):
def run():
# do some init
self.dosomeinit()
while self.continue == 1:
# do something
self.dosomething()
sleep(0)
# do some shutdown
self.dosomeshutdown()
...in some other code...
t.continue = 0
...
Or
If you have a thread that runs in the background and you just want it to end
when the main thread does you could just make it a daemon thread like so:
e.g.
class mytheard(threading.Thread):
def __init__():
#do some init
self.dosomeinit()
# ensure thread is destroyed with the main process
self.setDaemon(1)
HTH
--
Phil
"Requirements - what are they I just hack something together that does what
I think they want" ;)
--
http://mail.python.org/mailman/listinfo/python-list
More information about the Python-list
mailing list