VB.NET 2010 控制台应用程序 等待密钥 5 秒钟,如果没有,请继续



好的,所以我尝试在几个谷歌网站上查找,但找不到 对此的回答。

它 VB.Net 作为控制台应用程序,我想设置它的方式几乎就像 BIOS 条目一样,当您打开计算机时,您有几秒钟的时间按下一个键,如果不按下它会跳过,这在带有计时器的 Windows 窗体应用程序中很容易,但我正在努力在控制台应用程序中做到这一点。

到目前为止的代码:

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,但不确定如何在等待过程中读取特定密钥。

使用 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

相关内容

最新更新