Geben Sie den Zeitüberschreitungsmechanismus ein, um die Konsole zu betreten
Konsolenanwendungen verwenden häufig
Methoden, um die Benutzereingabe anzuzeigen. Insbesondere in Automatisierungsszenarien kann es jedoch erforderlich sein, die Reaktionszeit der Benutzer einzuschränken. Dies führt zu einer Frage: Wie gehen wir mit dieser Situation um Zeitüberschreitungsmechanismus hinzu? Console.ReadLine()
Console.ReadLine()
Die vollständige Lösung
Obwohl es einige Einschränkungen in den vorherigen Lösungen gibt, z.
Die Vorteile dieser Lösung
<code class="language-csharp">class Reader { private static Thread inputThread; private static AutoResetEvent getInput, gotInput; private static string input; static Reader() { getInput = new AutoResetEvent(false); gotInput = new AutoResetEvent(false); inputThread = new Thread(reader); inputThread.IsBackground = true; inputThread.Start(); } private static void reader() { while (true) { getInput.WaitOne(); input = Console.ReadLine(); gotInput.Set(); } } public static string ReadLine(int timeOutMillisecs = Timeout.Infinite) { getInput.Set(); bool success = gotInput.WaitOne(timeOutMillisecs); if (success) return input; else throw new TimeoutException("用户未在规定时间内提供输入。"); } public static bool TryReadLine(out string result, int timeOutMillisecs = Timeout.Infinite) { getInput.Set(); bool success = gotInput.WaitOne(timeOutMillisecs); if (success) { result = input; return true; } else { result = null; return false; } } }</code>
Reservefunktion: Unterscheidet sich von anderen Methoden.
Verwaltung Mehrere Aufrufe:Console.ReadLine()
Schlussfolgerung
Diese erweiterte Lösung bietet eine umfassende und effiziente Methode, um einen Zeitüberschreitungsmechanismus zu
hinzuzufügen, um die Benutzereingangsszenarien mit einem bestimmten Zeitlimit effektiv zu verarbeiten.<code class="language-csharp">try { Console.WriteLine("请在接下来的 5 秒内输入您的姓名。"); string name = Reader.ReadLine(5000); Console.WriteLine("您好,{0}!", name); } catch (TimeoutException) { Console.WriteLine("抱歉,您等待的时间过长。"); }</code>
Das obige ist der detaillierte Inhalt vonWie kann ich Console.readline () eine Auszeit hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!