我无法捕捉到主线程中的INT信号,请告诉我如何解决这个问题。我希望睡眠方法可以被CTRL + C中断,但它会一直等到计时器结束。Python睡眠函数不捕获中断信号
import pygtk
pygtk.require('2.0')
import gtk
import time
import urllib2
import re
import signal
import sys
import __main__
from time import ctime, strftime, localtime
from threading import Thread
myThread = None
class MyThread(Thread):
def __init__(self, filename):
Thread.__init__(self)
self.filename = filename;
self.terminate = False
def StopProcess(self):
self.terminate = True
def run(self):
while self.terminate <> True:
time.sleep(5)
self.terminate = True
def SignalHandler(signum, frame):
if (myThread <> None):
myThread.StopProcess()
sys.exit()
if __name__ == "__main__":
signal.signal(signal.SIGINT, SignalHandler)
myThread = MyThread("aaa")
myThread.start()
标准行为是捕获SIGINT并将其转换为KeyboardInterrupt异常。我很好奇,如果有一个原因,只是陷入异常,而不是足够的? – Keith 2011-06-02 02:01:35