【发布时间】:2021-10-31 04:08:57
【问题描述】:
我一直在研究如何在按下 esc(或任何键)时停止控制台应用程序。
我遇到了这个解决方案 Listen for key press in .NET console app
现在,我试图将其应用于我的案例: 当我按任意键时,我应该停止我的控制台应用程序,这是一个循环。
根据上述主题中提供的解决方案,我添加了自己的部分,如下所示:
Console.WriteLine("Press ESC to stop");
do {
while (! Console.KeyAvailable) {
foreach (var station in WeatherStations.station)
{
var stationAirParams = station.value?.FirstOrDefault();
Console.WriteLine(
station.name + " " + (stationAirParams == null
? ""
: stationAirParams.value)
);
Thread.Sleep(100);
}
}
} while (Console.ReadKey(true).Key != ConsoleKey.Escape);
也就是说……为什么循环没有停止?
【问题讨论】:
-
它会一直枚举站并且每次等待十分之一秒。处理完所有站都不退出吗?
-
没错,它会像您所说的那样枚举站点,并在所有站点都被处理后停止。问题是当我按 esc 或任何键时,什么都没有发生