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?
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.
Ausgehend von der Antwort von Ikh wollte ich einen Countdown mit meinem
%Vor%