Консольное приложение VB.NET 2010 Подождите 5 секунд ключ, продолжайте, если нет

Итак, я попытался посмотреть на нескольких сайтах Google и не могу найти ответ на этот вопрос.

Он находится в VB.Net как консольное приложение, способ, которым я хочу установить это, почти как запись в BIOS, когда у вас есть несколько секунд, чтобы нажать клавишу, если она не нажата, она пропускается, это достаточно просто в приложении Windows Forms с таймером, но я пытаюсь сделать это в консольном приложении.

пока код:

   Console.WriteLine("Welcome to console, press F2 for advanced options.")
    ''Console.ReadKey(keys.f2)
    ''Make it pause for 5 seconds, tried obvious threading,thread.sleep(5000) - that halts the application :/

Так что, да, если вы понимаете, что я имею в виду и способны помочь, все будет оценено по достоинству. Кажется, нет никакой очевидной функции таймера. Я думал о том, чтобы иметь переменную, которая медленно увеличивается до 100, и использует thread.sleep, но я думаю, что ее шанс подобрать ключ невелик, потому что.sleep останавливает приложение. Также думал о console.readkey, но не знал, как прочитать конкретный ключ во время процесса ожидания.

1 ответ

Решение

Используя цикл Do, Console.KeyAvailable и секундомер

    Console.WriteLine("Welcome to console, press F2 for advanced options.")
    Dim stpw As Stopwatch = Stopwatch.StartNew
    Dim waitfor As New TimeSpan(0, 0, 5)
    Dim kp As ConsoleKeyInfo

    Do
        If Console.KeyAvailable Then
            kp = Console.ReadKey(True)
            If kp.Key = ConsoleKey.F2 Then
                Exit Do
            End If
        End If
        Threading.Thread.Sleep(100)
    Loop While stpw.Elapsed < waitfor

    If kp.Key = ConsoleKey.F2 Then
        Console.WriteLine("F2 press")
    Else
        Console.WriteLine("NO F2")
    End If
Другие вопросы по тегам