J'ai une fonction qui se bloque parfois. Normalement, je voudrais définir une alarme, mais je suis dans Windows et il n'est pas disponible. Y at-il un moyen simple autour de ceci, ou devrais-je simplement créer un thread qui appelle time.sleep()?remplacement de signal.alarm dans Windows [Python]
Terminé par un thread. Seul truc utilisait os._exit
au lieu de sys.exit
import os
import time
import threading
class Alarm (threading.Thread):
def __init__ (self, timeout):
threading.Thread.__init__ (self)
self.timeout = timeout
self.setDaemon (True)
def run (self):
time.sleep (self.timeout)
os._exit (1)
alarm = Alarm (4)
alarm.start()
time.sleep (2)
del alarm
print 'yup'
alarm = Alarm (4)
alarm.start()
time.sleep (8)
del alarm
print 'nope' # we don't make it this far
Pourriez-vous s'il vous plaît supprimer la réponse de votre question * * et l'afficher comme ... réelle * réponse *? – ThiefMaster
vous pourriez [utiliser 'threading.Timer()' à la place] (http://stackoverflow.com/a/28081214/4279) – jfs
@ThiefMaster done! – LondonRob