2016-05-11 8 views
1

Ich entwickle eine App, die auf Linux basiert, aber jetzt bin ich konfrontiert, wie ich den Webbrowser aufrufen muss, um die weitere Aufgabe zu erledigen, aber das Problem ist, dass das Programm stecken bleibt endet nicht. Ich habe versucht, es zu benutzen Thread zu beenden, aber es nicht empfängt den Interrupt und der Faden läuft unendlich, unter der Basisversion des Codes Ich war trying.Hope Sie mein Problem bekommen,Wie man einen Thread beendet, der den Webbrowser in Python aufruft

import time 
import threading 
import webbrowser 

class CountdownTask: 
    def __init__(self): 
     self._running = True 

    def terminate(self): 
     self._running = False 

    def run(self): 
     url='http://www.google.com' 
     webbrowser.open(url,new=1) 

c = CountdownTask() 
t = threading.Thread(target=c.run) 
t.start() 
time.sleep(1) 
c.terminate() # Signal termination 
t.join()  # Wait for actual termination (if needed) 
+0

' t.terminate() '... aber afaik es funktioniert nur auf Linux –

+0

danke ich habe den Trick, ich habe ein wenig Modifikation, ich habe die' Countdowntask' als Thread und dann t.terminate funktioniert perfekt.class CountdownTask (threading.Thread): ' –

Antwort

1
import time 
import threading 
import webbrowser 

class CountdownTask(threading.Thread): 
    def __init__(self): 
     threading.Thread.__init__(self) 
     self._running = True 

    def terminate(self): 
     self._running = False 

    def run(self): 
     url='http://www.google.com' 
     webbrowser.open(url,new=1) 

t = CountdownTask() 
t.start() 
time.sleep(1) 
t.terminate() # Signal termination 
t.join()  # Wait for actual termination (if needed) 
Verwandte Themen