2009-11-25 12 views
0

Chaque fois que le code thread.interrupt_main() est utilisé dans Jython, il n'interrompt pas réellement le thread principal. Des idées sur les alternatives? Le code est ci-dessous:Alternative à interrupt_main() dans Jython?

import threading 
import dummy_thread as _thread 
def exitFunct(): 
    _thread.interrupt_main() 
t = threading.Timer(60.0, exitFunct) 
t.start() 
for i in range(1, 3000): 
    print i 

Répondre

0

Est-ce que la liste de 3000 numéros prend plus de 60 secondes sur votre machine? On dirait que la fonction principale est terminée avant que la minuterie ne se déclenche, donc plus rien ne peut plus l'interrompre car la fonction principale est déjà désactivée. Non?

Vous pouvez également utiliser PyErr_SetInterrupt() à la place.

+0

merci, mais cela ne fonctionne pas. J'en ai besoin pour interrompre et arrêter le thread principal dans Jython. En ce qui concerne la liste des 3000 numéros, je veux simplement dire que exitFunct devra s'exécuter avant que le thread principal ait fini de s'exécuter. –