linux cpu 100%

场景:

使用Console,在Main中,使用如下方法使得控制台不退出

var isExit = false;
while (!isExit)
{
    String message = Console.ReadLine();
    if (message == "exit")
    {
        //这里是退出时的处理代码
        isExit = true;
    }
}

问题

通过该方式,如果是在前台运行,没有任何问题,但是当将控制台配置为linux服务的时候,会造成cpu 100%

主要原因是使用了ReadLine

如果改为ReadKey,会有另外一个问题发生:当配置为linux服务的时候,会不断重启服务

 

解决办法

可参照 Console Program.cs - 编程代码 (cscoder.cn) 的写法,让程序不退出,又能通过ctrl+c结束程序