我無法捕捉到主線程中的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