如果没有按键输入,C#单声道控制台应用程序将停止输出

如果没有按键输入,C#单声道控制台应用程序将停止输出,c#,linux,mono,console,raspberry-pi,C#,Linux,Mono,Console,Raspberry Pi,我在Linux下Mono4.1的控制台应用程序上看到了一个奇怪的行为(RaspbianJessye,RaspberryPi2) 考虑一下这个计划: static void Main(string[] args) { Console.Clear(); while (true) { if (Console.KeyAvailable) { Console.R

我在Linux下Mono4.1的控制台应用程序上看到了一个奇怪的行为(RaspbianJessye,RaspberryPi2)

考虑一下这个计划:

    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分钟,在我看来这是一个非常巧合的整数…),但在那之后,输出冻结,但程序继续运行

我已经测试了一切,似乎没有键盘输入,在一段时间后,控制台停止刷新,在任何按键后,控制台重新开始工作一段时间,然后再次冻结

显然,当按下一个键时,这个测试程序停止,但在我的实际程序中,输入被消耗,因为我知道控制台在任何键按下后都会再次工作(我只是消耗它,我对输入不做任何事情)。此外,我还检查了按任何其他键,如lock num,它也会继续工作,在示例和实际程序中

这是已知的bug吗?预期行为


有解决办法吗?我正在创建一个控制台应用程序,它可以监控一些服务,当我想查看真实数据时必须按键,这让我非常恼火。

好的,将我的搜索指向linux和raspberry,而不是mono和C。我发现了我的问题

它来自两个来源,我附加的屏幕和linux控制台空白

我有一个SPI屏幕连接到rpi,它的驱动程序似乎非常糟糕,他们有一些错误,其中一个没有响应消隐(可能SPI屏幕没有意识到?不知道),所以当我看到控制台没有响应时,这是因为它被消隐,没有写入输出,我只是没有注意到,因为屏幕根本没有被清除

空白处,Debian似乎有一个bug,甚至按照描述配置/etc/kbd/config和/boot/config.txt都不起作用,但是发布sudo sh-c“TERM=linux setterm-blank 0>/dev/tty0”确实起作用,所以我创建了一个脚本来启动我的应用程序,现在它可以工作了