タイムアウトメカニズムの追加
Console.ReadLine()
コンソールアプリケーションでは、ユーザーの入力を実行する必要がありますが、ユーザーが応答しすぎるとどうなりますか?タイムアウトメカニズムを実装することで、ユーザーが指定された時間内に入力を提供しない場合でも、プログラムは実行を続けることができます。
実装方法
最も直接的な方法は、タイマーを使用してwhileサイクルを使用して入力を定期的に確認することです。入力なしで特定の時間がかかる場合、プログラムはタイムアウトを捨てることができます。autoresetevent
を使用する高度な方法 より高度なタイムアウトメカニズムの場合、マルチスレッド方法を使用できます。バックグラウンドスレッドの監督が入力を聞き、メインスレッドが吊り下げられました。入力を受信した後、バックグラウンドスレッドはメインスレッドを続行する信号を送信します。<code class="language-csharp">using System; using System.Threading; public class ConsoleTimeout { public static string InputWithTimeout(int timeoutSeconds) { Console.WriteLine("请输入内容:"); var timer = new Timer((_) => { throw new TimeoutException("输入超时"); }, null, timeoutSeconds * 1000, Timeout.Infinite); string input = Console.ReadLine(); timer.Dispose(); return input; } }</code>
に追加する方法を示しています。2番目の例はより堅牢で、より複雑なシーンに適しています。 選択する方法は、特定のニーズとコードの複雑さに対する寛容に依存します。
以上がConsole.readline()のタイムアウトを実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。