我看到在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分鐘,非常整數是我看來的巧合),但在此之後輸出凍結,但程序繼續運行。
我已經測試了一切,看起來如果沒有鍵盤輸入,一段時間後控制檯停止刷新,任何按鍵後控制檯開始再次工作一段時間,然後再凍結。
很顯然,當一個按鍵被按下時,這個測試程序會停止,但是在我的真實程序中輸入被消耗,因爲我知道控制檯在任何按鍵後都會再次工作(我只是消耗它,我什麼都不做與輸入)。此外,我已經檢查過按下其他任何按鍵,如鎖數字,它也繼續工作,在示例和真正的程序。
這是一個已知的錯誤嗎?預期的行爲?
任何解決方法?我正在創建一個監視某些服務的控制檯應用程序,並且當我想查看真實數據時,非常煩人不得不按下一個鍵。