Mam funkcję, która czasami zawiesza się. Normalnie ustawiłbym alarm, ale jestem w systemie Windows i jest niedostępny. Czy istnieje prosty sposób obejścia tego, czy powinienem po prostu utworzyć wątek, który wywołuje time.sleep()?zamienna signal.alarm w systemie Windows [Python]
Skończyło się na wątku. Tylko sztuczka używał os._exit
zamiast 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
mógłbyś usunąć odpowiedź z pytaniem * * i umieścić go jako odpowiedź ... rzeczywistego * *? – ThiefMaster
można [użyj 'threading.Timer()' zamiast] (http://stackoverflow.com/a/28081214/4279) – jfs
@ ThiefMaster zrobione! – LondonRob