С#: проверьте, не нажата ли какая-либо клавиша в консоли

Оба Console.Read() и Console.ReadKey(), похоже, ждут нажатия клавиши. Как я могу определить, было ли что-нибудь нажато, не попросив программу ждать нажатия клавиши?

Ответы

Ответ 1

Вы можете опросить Console.KeyAvailable, чтобы узнать, можете ли вы что-нибудь прочитать.

Ответ 2

Вы хотите изучить использование обработчиков событий. Для использования форм Windows следующее должно быть полезно. Событие Control.Keypress(System.Windows.Forms). Для хорошего обзора обработчиков событий в общем случае посмотрите EventHandling в .NET с использованием С#.

Для консольного приложения вы должны заглянуть в функцию Console.CancelKeyPress Event.

Ответ 3

Просто добавьте следующее, где вы хотите подождать:

while (!Console.KeyAvailable) {}