kurze Frage:
Kann man Thread pausieren oder neustarten?
Zum Programmstart wird der Thread gestartet und das Hauptprogramm läuft wunderbar weiter. Nachdem stoppen möchte ich den Thread wieder neustarten, leider hält dies das Hauptprogramm an.
Mein Versuch war:
Code: Alles auswählen
#!/usr/bin/env python
#-*- coding: iso-8859-1 -*-
import threading
import time
class Loop(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.count = 0
# Values for self.running:
# 0 : Ready.
# 1 : Running.
# 2 : Finished.
self.running = 0
def run(self):
self.running = 1
self.loop()
def loop(self):
pass
print 'loop'
time.sleep(0.1)
if not self.running == 2:
self.loop()
class Application:
def __init__(self):
print "Create and start counter"
loop = Loop()
loop.start()
print "Main-Programm don´t need to wait"
time.sleep(1)
print "Main-Programm is still running - great"
time.sleep(1)
print "Stop counter"
loop.running = 2
time.sleep(1)
print "Start counter again"
loop.run() # <--------------------------- break ;(
print "Main-Programm should´t wait"
loop.running = 2
print "Main-Program finished."
if __name__ == "__main__":
app = Application()
loop.
Bei loop.stop() statt loop.run kommt: AttributeError: 'Loop' object has no attribute 'stop'
Nur loop.running = 1 auszuführen bringt nix, da der loop nicht ausgeführt wird. Und mit zusätzlich loop.loop() passiert logischerweise das gleich wie mit loop.run()
hmm.
Ich freue mich sehr über Tipps und Hilfe!