我正在创建一个C#控制台应用程序,它将执行一个无限过程。当用户按下Escape键时,我该如何使应用程序“暂停”?
一旦用户按下Escape键,我想要选择退出应用程序或者继续循环,但不希望在处理过程中出现任何不连续。如果我在第100步按下Esc键,那么我应该能够在第101步恢复处理。
以下是我目前的方法:
一旦用户按下Escape键,我想要选择退出应用程序或者继续循环,但不希望在处理过程中出现任何不连续。如果我在第100步按下Esc键,那么我应该能够在第101步恢复处理。
以下是我目前的方法:
// Runs the infinite loop application
public static void runLoop()
{
int count = 0;
while (Console.ReadKey().Key!= ConsoleKey.Escape)
{
WriteToConsole("Doing stuff.... Loop#" + count.ToString());
for (int step = 0; step <= int.MaxValue; step++ ) {
WriteToConsole("Performing step #" + step.ToString());
if (step == int.MaxValue)
{
step = 0; // Re-set the loop counter
}
}
count++;
}
WriteToConsole("Do you want to exit? y/n");
exitApplication(ReadFromConsole());
}
有没有办法在单独的线程中检查用户输入的按键,然后当另一个线程检测到 Esc
键时暂停无限循环?
Console.KeyAvailable
,然后你可以使用Console.ReadKey
来读取它。这将允许你在循环内部检查而不需要显式地要求用户输入。 - Ron Beyer