Endlosschleife durch Benutzereingabe beenden
Verfasst: Mittwoch 13. Januar 2010, 13:17
Hallo!
Ich habe folgendes Problem: Ich möchte eine Endlosschleife durch eine Benutzereingabe von Außen zu einem beliebigen Zeitpunkt terminieren. Also z.B. wenn der Benutzer "q" für quit eingibt. Das ganze soll für eine beliebige Anzahl an Threads funktionieren.
Ich habe es erst mit raw_input() probiert. Da ist allerdings dann das Problem, dass er bei raw_input() wartet, bis der Benutzer etwas eingibt. Die Aktionen in der Endlosschleife sollen aber SOLANGE laufen, bis der Benutzer "q" eingibt. Hat jemand eine Idee?
Danke!
Ich habe folgendes Problem: Ich möchte eine Endlosschleife durch eine Benutzereingabe von Außen zu einem beliebigen Zeitpunkt terminieren. Also z.B. wenn der Benutzer "q" für quit eingibt. Das ganze soll für eine beliebige Anzahl an Threads funktionieren.
Ich habe es erst mit raw_input() probiert. Da ist allerdings dann das Problem, dass er bei raw_input() wartet, bis der Benutzer etwas eingibt. Die Aktionen in der Endlosschleife sollen aber SOLANGE laufen, bis der Benutzer "q" eingibt. Hat jemand eine Idee?
Code: Alles auswählen
import threading
import time
class ThreadClass(threading.Thread):
'''
Class ThreadClass derived from threading.Thread.
'''
def __init__(self):
'''
Constructor of class ThreadClass.
'''
# Initialisieren als Instanz der Klasse Thread
threading.Thread.__init__(self)
def run(self):
'''
Run method.
'''
while True:
userInput = raw_input("> ")
if userInput == "q":
break
print "Do something."
# warte eine Sekunde
time.sleep(1)
# Instanziieren und starten eines Threads
firstThread = ThreadClass()
firstThread.start()