Hallo,
ich möchte ich C# eine Nummer eingeben, das Prinzip welches ich dafür
anwenden möchte, kennen wir vom TV...
Wir drücken eine Taste, der TV erkennt z.B. die 5, wartet aber noch eine
bestimmt Zeit und prüft ob ggf. noch eine 2. Taste gedrückt wird...
Ich habe hier ein paar Ansätze, bei welchen es mir schwer fällt diese
noch "richtig" zusammen zu bringen.
> Hier habe ich eine Wartezeit
1 | DateTime beginWait = DateTime.Now;
|
2 | while (!Console.KeyAvailable && DateTime.Now.Subtract(beginWait).TotalSeconds < 5)
|
3 | Thread.Sleep(250);
|
jetzt kann ich z.B. mit ReadKey eine Eingebe tätigen.
mit einer For => schleife, ist es mir sogar möglich z.B. 3 "Ziffern"
abzufangen und diese "aneinander zu hängen"
1 | for(int i = 1; i <= 3; i++)
|
2 | {
|
3 | reading = Console.ReadKey().KeyChar;
|
4 | Int32.TryParse(reading.ToString(), out parsedInt);
|
5 | res = res * 10 + parsedInt;
|
6 |
|
7 | Console.WriteLine(res);
|
8 | }
|
Aber wie bekomme ich das jetzt hin, z.B. nur 2 Ziffern einzugeben oder
nur 1 <- obwohl man ja 3 eingeben können DARF.
Meine Frage ist, wie richte ich den Timer so ein, dass z.B. 2 Sekunden
ablaufen und diese nach jeder "Eingabe" resettet werden, laufen die 2
Sekunden ohne Eingabe ab, läuft das Programm mit dem nächsten Schritt
weiter.
>>>
Bitte geben Sie eine Nummer ein
> Warte 2 Sekunden auf eingabe
(Eingabe innerhalb von 2 Sekunden)
1
> Warte 2 Sekunden auf eingabe
(keine Eingabe innerhalb von 2 Sekunden)
=> Schleife abbrechen!
Vielen Dank