Interceptar ESC sem remover outras teclas pressionadas do buffer
Eu tenho um aplicativo de console que solicita ao usuário várias entradas. Eu gostaria que o usuário fosse capaz de pressionar escape após qualquer solicitação para cancelar a operação.
Algo como:
<code>if (Console.ReadKey().Key != ConsoleKey.Escape) { string input = Console.ReadLine(); ... } </code>
O problema com isso, no entanto, é que se uma tecla diferente de escape for pressionada, ela não fará parte da entrada (retornada deReadLine
).
Existe uma maneira de "espiar" a próxima chave, ou fazer isso?