C# でターミナルからユーザー入力を取得しようとしていますが、ユーザーが入力を開始したときにのみ ReadLine を実行したいと考えています。基本的に、私が今セットアップしている方法は、while ループにいて、メッセージを受信したか送信したかを確認したいのですが、ReadLine を呼び出してメッセージを送信しようとして立ち往生したくありません。現時点で送信するものが何もない場合は、ユーザーがメッセージを送信するのを待ちます。私のコードは次のようになります。
While (true)
{
// If messages to be received
// Receive them
// Check to see if the user is typing input
if (Console.KeyAvailable)
{
string userInput = Console.ReadLine();
// Do stuff...
}
}
基本的に何が起こっているかというと、完全に正常に動作しますが、ユーザーが入力した最初の文字はターミナル ウィンドウに表示されませんが、ReadLine によって問題なく取得されます。とにかく、ユーザーが入力しているものすべてをすぐに見ることができるように、これを機能させることができますか?
ありがとう!