Título: Uso de isAlive() para saber cuando termina un hilo Publicado por: searching en 24 Agosto 2017, 22:04 pm #todo el programa funciona bien,ecepto que no respeta la condición isAlive()
#cuando if t.isAlive() == True: si funciona, que es cuando el hilo esta vivo # cuando if t.isAlive() == False: no funciona, supongo que el hilo devuelve False # cuando termina el hilo. # pero por los resultados creo que no devuelve False. #existe otra instrucción para saber que flag dá el hilo al termino de su proceso? # o de que otra forma podría manejarlo #gracias from threading import Timer opcion = -1 def motor01(): print ("fin motor 1\n") def motor02(): print ("fin motor 2\n") while (opcion !=0 ): opcion = int (input("opcion deseada ")) if opcion == 1: t = Timer(10.0, motor01) t.start() # after 30 seconds, "hello, world" will be printed if t.isAlive()== False: print ("hacer algo" ) if opcion == 2: t = Timer(10.0, motor02) t.start() # after 30 seconds, "hello, world" will be printed if t.isAlive() == False: print ("realizae x acción") Título: Re: Uso de isAlive() para saber cuando termina un hilo Publicado por: MCKSys Argentina en 24 Agosto 2017, 22:27 pm Hola!
Fíjate la respuesta que da Cédric Julien aquí: https://stackoverflow.com/questions/11083349/python-threading-timer-stays-alive-after-calling-cancel-method (https://stackoverflow.com/questions/11083349/python-threading-timer-stays-alive-after-calling-cancel-method) Usar Thread.join() es lo que necesitas, si quieres esperar hasta que el thread termine. Saludos! |