Можно ли вызывать определенный метод при каждом нажатии кнопки, даже если консоль не ожидает ввода данных пользователем? - PullRequest
0 голосов
/ 26 марта 2019

Я делаю программу для разграничения функций и хочу вызывать определенный метод, как только нажмем "esc".

Пока я пытался найти ответ через Google, но я не могу 'Кажется, не найти ничего, что работает.Кто-нибудь знает, возможно ли это в консольном приложении C #?

1 Ответ

0 голосов
/ 26 марта 2019

Нет события для прослушивания нажатий клавиш.Только Console.ReadKey.Но вы можете превратить его в обратный вызов, используя Task s.Вот так:

public static void RegisterKeyHandler(Action<ConsoleKeyInfo> handler)
{
    Task.Run(() =>
    {
        while (true)
        {
            var key = Console.ReadKey();
            handler(key);
        }
    });
}

Принимает ключи только тогда, когда окно консоли сфокусировано.

...