Przechwytuj ESC bez usuwania innych naciśnięć klawiszy z bufora

Mam aplikację konsoli, która monituje użytkownika o wiele wejść. Chciałbym, aby użytkownik mógł naciskać escape po jakimkolwiek wezwaniu do anulowania operacji.

Coś jak:

<code>if (Console.ReadKey().Key != ConsoleKey.Escape) {
  string input = Console.ReadLine();
  ...
}
</code>

Problem z tym polega jednak na tym, że jeśli naciśnięty zostanie klawisz inny niż escape, nie będzie on częścią wejścia (zwróconego zReadLine).

Czy istnieje sposób na „zerknięcie” na następny klucz lub w inny sposób?

questionAnswers(3)

yourAnswerToTheQuestion