2008/8/13 Parimala <[EMAIL PROTECTED]>: > Hello, > > I am using python2.5.1 version to run my test scripts. I want to use > 'threading' module in my tests. As a startup program, I had run the > following one. > > import threading > import sys > import time > > def hello(): > i=0 > try: > while i<10: > print "hi" > time.sleep(1) > i+=1 > except KeyboardInterrupt: > print 'KeyboardInterrupt' > raise KeyboardInterrupt > > try: > thread=threading.Thread(target=hello,args=()) > thread.start() > except KeyboardInterrupt: > print 'KeyboardInterrupt' > raise KeyboardInterrupt > > once program starts, problem is.. > I am not able to abort the thread using (CTRL+C) KeyboardInterrupt. While > running if I press CTRL+C, it won't generate any exception until the end of > the execution. Once the execution gets over, it will give "Exception > exceptions.KeyboardInterrupt in <module 'threading' from > 'C:\python25\lib\threading.py'> ignored" this message and exits. > > I had gone through some documents, it says if a thread is joined with > .join() method then we can't stop that process until it releases the lock > what it acquired. But in the above program I didn't use .join() method but > still I am not able to abort the thread. > > Could you please suggest me how can I abort the thread at any point in time > using CTRL+C.
Hi, a terminate method is given here: http://sebulba.wikispaces.com/recipe+thread2 so you can terminate the thread by: (...) t.start() (...) while True: try: #some code except KeyboardInterrupt: t.terminate() break Mathieu -- http://mail.python.org/mailman/listinfo/python-list