Ожидайте Console.ReadLine()C#

Место общения программистов C#
Ответить
Anonymous
 Ожидайте Console.ReadLine()

Сообщение Anonymous »

В настоящее время я создаю асинхронное консольное приложение, в котором я создал классы для обработки отдельных областей приложения.

Я создал класс InputHandler, который, как я предполагал, будет дождитесь ввода Console.ReadLine(). Однако вы не можете дождаться такой функции (поскольку она не асинхронна), мое текущее решение состоит в том, чтобы просто:

Код: Выделить всё

private async Task GetInputAsync() {
return Task.Run(() => Console.ReadLine())
}
который работает отлично. Однако мое (ограниченное) понимание состоит в том, что вызов Task.Run запустит новый (параллельный?) поток. Это противоречит цели асинхронных методов, поскольку новый поток теперь блокируется до тех пор, пока Readline() не вернет результат, верно?

Я знаю, что потоки — это дорогой ресурс, поэтому чувствую себя очень расточительно. и хаки это делает. Я также попробовал Console.In.ReadLineAsync(), но, видимо, он глючный? (Кажется, зависает).

Подробнее здесь: https://stackoverflow.com/questions/226 ... e-readline
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»