.NET Core Ubuntu проблемы, когда не читает с терминала - PullRequest
0 голосов
/ 26 июня 2019

Я знаю, что это изношенное название, но у меня есть проблема. Несколько дней назад я пытался запустить программу на 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);
}

, который перехватывает ключ, но когда я добавляю больше кода (особенно чтение из файлов и другие вещи, которые требуют времени), показываются некоторые ключи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...