Остановить консольное приложение от приостановки на паузе Evemt - PullRequest
0 голосов
/ 12 марта 2019

Я реализовал небольшое консольное приложение, которое проверяет, как долго работает программа.Затем я попытался запустить приложение, и все работает нормально.Однако затем я нажал (случайно) кнопку «пауза» на моей клавиатуре, и программа перестала выполняться.

Есть ли способ обработать это событие в консольном приложении, чтобы подавить эту паузу?

Обновление:

class Program
{
    static void Main(string[] args)
    {
        while (true)
        {
            Thread.Sleep(2000);
            var p = Process.GetProcessesByName("wineks");
            if (p != null)
            {                   
                Console.WriteLine("Found Process. Close it please");
                Console.ReadKey();
            }
        }
    }
}

Это в основном мой код.Это только просит пользователя закрыть определенный процесс.Если я знаю, что нажал кнопку «Пауза» на моей клавиатуре до того, как увидел сообщение, оно никогда не появится, потому что приложение зависает и кажется приостановленным.Просматривая в Интернете, я знаю, что нажимаемая клавиша имеет паузу имени, а клавиша посылает какое-то событие или сигнал на консоль.

1 Ответ

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

На самом деле Консоль не имеет способа вызывать события KeyPress, однако вы можете попробовать какой-то зацикленный подход для обработки любого нажатия клавиши, сделанного случайно.Обратитесь к этому вопросу: здесь

Попробуйте вставить эти строки до GetProcessByName

if (Console.KeyAvailable) 
{
    if (ConsoleKey.Pause == Console.ReadKey().Key)
     continue; 
}
...