c # консольная змея застревает при длительном нажатии клавиши

Я только начал изучать программирование пару месяцев назад и решил заняться консольной игрой в змею. Все прекрасно работает, ожидают одной вещи.

Если моя змея идет вверх, и я нажимаю стрелку внизи держи это нажатымМоя змея просто останавливается и останавливается даже на некоторое время после того, как я перестаю нажимать кнопку.

То же самое происходит, если моя змея движется направо и я нажимаю стрелку вправо слишком долго, я на некоторое время теряю контроль (но змея не останавливается). Это происходит для каждого пути (влево, вправо, вверх, вниз).

Я попытался сравнить cki с другим ConsoleKeyInfo с небольшой задержкой между ними, но это не имеет значения. Если я удерживаю клавишу нажатой, моя программа просто остается на этом месте и обновляется для клавиши. (по крайней мере, я думаю, что это проблема)

Это «особенность» Console.ReadKey или есть какой-то способ предотвратить это?

Имейте в виду, что я только начал, так что я пока не знаю о продвинутых вещах.

Все работает безупречно, пока я не удерживаю кнопку нажатой более 1 секунды.

   public void LiikutaMato() //movesnake
    {

        if (Console.KeyAvailable)
        {
                ConsoleKeyInfo cki;
                cki = Console.ReadKey(true); // <-- I believe this is where it gets stuck 

    }

Ответы на вопрос(1)

Ваш ответ на вопрос