2015-11-27 22 views
0

我有一个控制台应用程序(我知道这应该是一个服务),并在最后一环,因此从未停止:单控制台应用程序作为守护采取100%的CPU

while (true) 
{ 
    Console.ReadLine(); 
} 

它在树莓完美运行Pi使用单声道(raspbian wheezy),但自从我升级到Raspbian Jessie的Pi 2后,它在作为守护进程启动时使用100%cpu。

看来,Readline()总是返回一个空行。任何想法?我的init.d脚本是用于测试目的很简单:

cd /myAppDir/ 
mono MyApp.exe & 
exit 0 

我试着用nohup的,带/不带&末,都没有成功

[编辑] 我不能使用线程。睡眠,因为我有一个定时器池的UART。一个简单的解决方案是创建另一个线程的所有工作,只是做了睡在主线程,但我想明白为什么它不喜欢这个

+0

为什么downvoting? – JPelletier

回答

2
它使用100%的CPU时作为开始

工作守护程序。

我不知道你是如何开始你的过程作为一个程序,但是通常情况下,守护进程重定向stdin/dev/null。因为Console.ReadLine()将永远不会阻塞。

我想(我没有Raspbian),运行守护进程的方式从Raspbian Wheezy变为Jessie。

+0

这就是我的想法,这就是为什么我惊讶地看到它在Wheezy上工作......谢谢! – JPelletier

相关问题