ホームページ > バックエンド開発 > C++ > Console.readline()のタイムアウトを実装する方法は?

Console.readline()のタイムアウトを実装する方法は?

Barbara Streisand
リリース: 2025-01-28 10:36:10
オリジナル
650 人が閲覧しました

How to Implement a Timeout for Console.ReadLine()?

タイムアウトメカニズムの追加

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つの例は、タイムアウト関数を

に追加する方法を示しています。2番目の例はより堅牢で、より複雑なシーンに適しています。 選択する方法は、特定のニーズとコードの複雑さに対する寛容に依存します。

以上がConsole.readline()のタイムアウトを実装する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート