如果用户在控制台中按下某个键,我想中断或暂停do/while
循环。我已经尝试了ReadLine
或ReadKey
但是我的程序停止并且正在等待输入,但我只希望我的程序在用户输入后停止。
我的代码:
do
{
//do some code until user input
Console.WriteLine("for settings: Press 's'");
ConsoleKeyInfo cki;
cki = Console.ReadKey(); // here the program stops and waits for input but I don't want it
if (cki.Key.ToString() == "S")
{
Console.WriteLine("SETTINGS");
}
} while (true);
查看Console.KeyAvailable
当用户按下某个键时会发生这种情况。当它是真的时,你可以做Console.ReadKey()
你将无法让你的程序轻松地做到这一点,这实际上是一次做两件事 1( 等待输入(readline/readkey 做什么(和 2( 同时继续工作。
您可以通过启动对一个威胁执行逻辑并在另一个线程上等待用户输入来使用多线程来做到这一点,然后在用户输入发生时在线程之间进行通信,但根据您的问题,这可能是一个过于引人注目的答案,我很乐意写一个示例,但我认为它更有可能混淆而不是帮助。