Я знаю, что это изношенное название, но у меня есть проблема.
Несколько дней назад я пытался запустить программу на Ubuntu. Я обнаружил кое-что интересное: я использовал Console.ReadKey(true);
, но терминал все еще показывает нажатую клавишу. Я немного исследовал и обнаружил, что терминал показывает КАЖДУЮ клавишу, которую я нажимаю. Даже когда я не читаю никаких клавиш.
Например, у меня есть следующая программа:
while(true)
{
System.Threading.Thread.Sleep(2500);
Console.WriteLine("2.5 seconds");
}
Что я ожидаю: я не читаю никаких ключей, чтобы они оставались в буфере.
Что происходит в Windows: они остаются в буфере.
Что происходит в Ubuntu: терминал отображает все клавиши, которые я нажимаю.
Можно ли добавить какой-либо код, чтобы терминал не отображал его?
Я знаю, что есть некоторые методы для предотвращения таких вещей, как Console.TreatControlCAsInput
.
Надеюсь, ты поможешь мне, Нильс.
(протестировано на сервере Ubuntu 18.04)
Кстати, я тоже тестировал
while(true)
{
Console.ReadKey(true);
}
, который перехватывает ключ, но когда я добавляю больше кода (особенно чтение из файлов и другие вещи, которые требуют времени), показываются некоторые ключи.