У меня консольное приложение .Net Core 2, работающее на сервере Ubuntu.
Я ssh на сервер через Putty из Windows.
Когда я пытаюсь отправить что-либо с помощью "ctrl"перед этим я вижу, что приложение не получает сигнал клавиши ctrl.
Является ли это проблемой, связанной с Putty, которая вообще не позволяет отправлять клавишу ctrl? Или есть что-то конкретное в работе со специальными ключами в Linux или через SSH, которое мешает моему приложению распознавать нажатие клавиши?
Вот мой код (он работает при запуске непосредственно на моем компьютере с Windows):
var programCanceler = new CancellationTokenSource();
log?.Information("Press ctrl+q to shut down application");
while (!programCanceler.IsCancellationRequested)
{
if (Console.KeyAvailable)
{
ConsoleKeyInfo key = Console.ReadKey(true);
//The following line does not fire when I press ctrl
//but it does fire when I press Q -- regardless of whether I'm holding ctrl
log?.Information($"Key Pressed: {key.Key}");
//Additionally, the following line never evaluates to true
//so even a ctrl+key combination isn't being recognized
if (key.Key == ConsoleKey.Q && key.Modifiers.HasFlag(ConsoleModifiers.Control))
{
programCanceler.Cancel();
log?.Information("Shutdown request issued...");
}
}
Thread.Sleep(300);
}