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
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; } } }
<留> 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.try { Console.WriteLine("请在接下来的 5 秒内输入您的姓名。"); string name = Reader.ReadLine(5000); Console.WriteLine("您好,{0}!", name); } catch (TimeoutException) { Console.WriteLine("抱歉,您等待的时间过长。"); }
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!