Oczekiwanie na wprowadzenie przez użytkownika z limitem czasu

Szukałem, ale najwyraźniej mój google foo jest słaby. Potrzebuję sposobu, aby poprosić użytkownika o dane wejściowe w konsoli i mieć czas oczekiwania po pewnym czasie i kontynuować wykonywanie skryptu, jeśli nie ma wejścia. Tak blisko, jak mogę powiedzieć, Read-Host tego nie zapewnia funkcjonalność. $ Host.UI.PromptForChoice () ani $ host.UI.RawUI.ReadKey (). Z góry dziękuję za wszelkie wskazówki.

EDIT: Bardzo dziękuję Larsowi Truijensowi za znalezienie odpowiedzi. Wziąłem kod, który wskazał, i zamknąłem go w funkcji. Zauważ, że sposób, w jaki go zaimplementowałem, oznacza, że ​​może upłynąć do jednej sekundy opóźnienia między momentem, w którym użytkownik uderza klucz, a kontynuowaniem wykonywania skryptu.

function Pause-Host
{
    param(
            $Delay = 1
         )
    $counter = 0;
    While(!$host.UI.RawUI.KeyAvailable -and ($counter++ -lt $Delay))
    {
        [Threading.Thread]::Sleep(1000)
    }
}

questionAnswers(4)

yourAnswerToTheQuestion