Warte auf Keypress (oder) N Sekunden bis zum Ende

8

Angenommen, mein Konsolenprogramm führt mehrere langwierige Aufgaben aus. Zwischen diesen Aufgaben möchte ich eine Pause machen - entweder für ein paar Sekunden oder , bis eine Taste gedrückt wird. (Was zuerst kommt.)

Diese Kriterien sind leicht zu überprüfen, aber sie lehnen es ab, miteinander auszukommen, wenn ich sie kombiniere: Entweder stoppt der Timing-Mechanismus für ein paar Sekunden, bevor ReadKey startet, oder Readkey blockiert die Gewinde vollständig bis zufrieden. Wie kann ich beide Bedingungen erfüllen?

    
4444 02.08.2012, 20:50
quelle

5 Antworten

15

Eine Möglichkeit, dies in C # 4.0 zu tun:

%Vor%     
lesscode 02.08.2012, 20:57
quelle
3

Ein Weg, dies zu tun, ist ohne einen Timer überhaupt. Erstellen Sie eine Schleife, die den Thread für etwa 25 Millisekunden inaktiviert, und überprüft dann, ob eine Taste über Console.KeyAvailable (was nicht blockierend ist) oder bis die Zeit zwischen DateTime.Now() und dem Zeitpunkt des Starts der Schleife das Zeitlimit überschritten hat.

    
ikh 02.08.2012 20:57
quelle
2

Ausgehend von der Antwort von Ikh wollte ich einen Countdown mit meinem

%Vor%     
Matt Vukomanovic 11.02.2016 08:43
quelle
0

Starten Sie zwei Threads. Man hört für einige Zeit auf Tastendruck und andere Wartezeiten. Lass den Haupt-Thread warten, wenn keiner fertig ist. Fahren Sie dann fort und ignorieren Sie die andere Thread-Antwort. :)

    
Ankush 02.08.2012 20:55
quelle
0

So etwas?

%Vor%     
CodeDemen 02.08.2012 21:08
quelle

Tags und Links