我看到在Linux下的Mono 4.1上的控制台应用程序(Raspbian Jessye,Raspberry Pi 2)上的一个奇怪的行为。C#单控制台应用程序停止输出,如果没有键输入
考虑此程序:
static void Main(string[] args)
{
Console.Clear();
while (true)
{
if (Console.KeyAvailable)
{
Console.ReadKey();
return;
}
Thread.Sleep(500);
Console.SetCursorPosition(0, 0);
Console.WriteLine(DateTime.Now.ToString());
}
}
应该在屏幕上更新,直到键被按下的日期。它在一段时间内接近10分钟(几乎精确10分钟,非常整数是我看来的巧合),但在此之后输出冻结,但程序继续运行。
我已经测试了一切,看起来如果没有键盘输入,一段时间后控制台停止刷新,任何按键后控制台开始再次工作一段时间,然后再冻结。
很显然,当一个按键被按下时,这个测试程序会停止,但是在我的真实程序中输入被消耗,因为我知道控制台在任何按键后都会再次工作(我只是消耗它,我什么都不做与输入)。此外,我已经检查过按下其他任何按键,如锁数字,它也继续工作,在示例和真正的程序。
这是一个已知的错误吗?预期的行为?
任何解决方法?我正在创建一个监视某些服务的控制台应用程序,并且当我想查看真实数据时,非常烦人不得不按下一个键。