Я пытаюсь получить пользовательский ввод от терминала в C#, но я хочу только ReadLine, когда пользователь начнет вводить текст. В принципе, способ, которым я настроен сейчас, заключается в том, что я нахожусь в цикле while, и я хочу либо проверить, чтобы получить сообщения или отправить их, но я не хочу застревать, пытаясь отправить их, вызвав ReadLine и ожидая отправки пользователем сообщения, если им нечего отправить в данный момент. Мой код выглядит примерно так:Проверьте и получите пользовательский ввод от терминала C#
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 не проблема. В любом случае я могу заставить это работать, чтобы пользователь мог сразу увидеть все, что они набирают?
Спасибо!
Я бы посмотрел на многопоточность или события –
Я бы хотел сделать это всего одним потоком – user1875195
Чтобы проверить, не набирает ли пользователь, используйте событие с нажатием клавиши, если что-то подобное будет работать для вас. –