Консольное приложение 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