По сути, 100% того, что Мар c сказал в своем ответе.
Боковое примечание к этому: под linux -подобными терминалами (и git - bash является одним из них) типичный (или даже стандартный) способ прерывания интерактивного приложения / скрипта, который в настоящее время блокирует / удерживает консоль, - это нажать Control + C. Консольные приложения с ядром net поддерживают это. Намного проще сделать это с помощью control + c, чем пытаться посмотреть, какие клавиши нажимаются.
IIR C, net -кордные приложения автоматически обнаруживают нажатие control + C и по умолчанию они просто закрываются, и это делает консоль снова доступной для пользователя. Это означает, что не нужно писать дополнительный код, и даже while(true)
циклы могут быть остановлены с его помощью (обработчик событий, который управляет + c, запускается в пуле потоков, независимо от того, что основной поток занят).
https://docs.microsoft.com/en-us/dotnet/api/system.console.cancelkeypress?view=netcore-3.1
По умолчанию свойство Cancel имеет значение false, что приводит к завершению выполнения программы при выходе из обработчика событий. Изменение его свойства на true указывает, что приложение должно продолжать выполнение.