Benutzereingaben und gleichzeitige Abarbeitung von Befehlen
Verfasst: Do Sep 01, 2016 10:52 am
Tags: C Konsole Menü Echtzeit
Ich wollte eine kleine Konsolen-Anwendung schreiben, in der der Benutzer in einem Menü navigiert. Er bewegt hierzu mit den Pfeiltasten einen Cursor durch die verfügbaren Menü-Optionen und mit Enter, ruft er den entsprechenden Menüpunkt auf.
Das heißt, das Programm führt nur dann eine Aktion aus, nämlich den Wechsel von einem Menü zum anderen, wenn der Benutzer die entsprechenden Tasten drückt.
Jetzt soll im Hintergrund ein Timer laufen, nach dessen Ablauf das Programm eine Aktion/Berechnung o.ä. ausführt. Auf den ersten Blick scheint mir das Programm aber durch die Möglichkeit der Menüsteuerung nichts anderes tun zu können, als auf das Drücken der entsprechenden Navigationstasten des Benutzers zu warten: Entweder wartet das Programm auf eine Benutzereingabe oder der Timer läuft oder eine andere Aktion wird ausgeführt. Alles zusammen scheint mit den üblichen Kontrollstrukturen (Schleifen, Verzweigungen, etc.) nicht oder nicht ohne komplexere Algorithmen umgesetzt werden zu können.
Ich muss eine Echtzeit-Anwendung entwickeln, die zeitgleich auf Benutzereingaben reagiert. Ich vermute, es gibt Methoden dafür. Habt ihr dazu Ideen?
Ich könnte doch alle "Hintergrundoperationen" in einer Schleife laufen lassen und bei jedem Schleifendurchlauf abfragen, ob der Benutzer diese oder jene Taste gedrückt hat. Das ist mir soeben spontan eingefallen, bzw. kenne ich das Prinzip von der Programmierung von (Echtzeit-)Shooter-Spielen. Da wird nach diesem Prinzip verfahren. Wäre das eine Möglichkeit? Taugt diese Möglichkeit für jeden Anwendungsfall? Geht es eleganter?
Ich wollte eine kleine Konsolen-Anwendung schreiben, in der der Benutzer in einem Menü navigiert. Er bewegt hierzu mit den Pfeiltasten einen Cursor durch die verfügbaren Menü-Optionen und mit Enter, ruft er den entsprechenden Menüpunkt auf.
Das heißt, das Programm führt nur dann eine Aktion aus, nämlich den Wechsel von einem Menü zum anderen, wenn der Benutzer die entsprechenden Tasten drückt.
Jetzt soll im Hintergrund ein Timer laufen, nach dessen Ablauf das Programm eine Aktion/Berechnung o.ä. ausführt. Auf den ersten Blick scheint mir das Programm aber durch die Möglichkeit der Menüsteuerung nichts anderes tun zu können, als auf das Drücken der entsprechenden Navigationstasten des Benutzers zu warten: Entweder wartet das Programm auf eine Benutzereingabe oder der Timer läuft oder eine andere Aktion wird ausgeführt. Alles zusammen scheint mit den üblichen Kontrollstrukturen (Schleifen, Verzweigungen, etc.) nicht oder nicht ohne komplexere Algorithmen umgesetzt werden zu können.
Ich muss eine Echtzeit-Anwendung entwickeln, die zeitgleich auf Benutzereingaben reagiert. Ich vermute, es gibt Methoden dafür. Habt ihr dazu Ideen?
Ich könnte doch alle "Hintergrundoperationen" in einer Schleife laufen lassen und bei jedem Schleifendurchlauf abfragen, ob der Benutzer diese oder jene Taste gedrückt hat. Das ist mir soeben spontan eingefallen, bzw. kenne ich das Prinzip von der Programmierung von (Echtzeit-)Shooter-Spielen. Da wird nach diesem Prinzip verfahren. Wäre das eine Möglichkeit? Taugt diese Möglichkeit für jeden Anwendungsfall? Geht es eleganter?