Постоянная проверка на нажатие клавишь
Хотелось сделать CLI прогу которая все время проверяет ни нажата ли какая нибудь кнопка.
Я понимаю что можно просто сделать так:
while (true)
{
if(Keyboard.IsKeyPressed(Key.A))
{
//....
{
}
Но нету ли более гуманного способа?
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
По-простому как-то так это делается.
private static void ReadingLoop()
{
ConsoleKeyInfo keyInfo;
while ((keyInfo = Console.ReadKey(true)).Key != ConsoleKey.Escape)
{
switch (keyInfo.Key)
{
case ConsoleKey.A:
// код, который выполняется при нажатии на кнопку
break;
}
}
}
static async Task Main(string[] args)
{
Task loop = Task.Run(() => ReadingLoop());
// ... какой-то код, который можно выполнять, пока в цикле читается клава
await loop; // подождать завершения
Console.WriteLine("Bye.");
Console.ReadKey();
}