[已解决问题] winows服务的问题-cpu100%
提问时间: 2008-08-19 10:27
悬赏分:50 浏览:210 次

>Function:有一个windows服务,从消息队列里获得消息,并处理
>Code

while(true)
{
 //process data
}
>Question
1:尽可能早地process data
2:因为while(true)   [现在服务器cpu100%]

现在如果不while(true)数据就不能尽可能早地处理。

如果while(true),cpu100%

请大家指教指教!

提问者:Robot·H - 小虾三级
最佳答案
while(true){ //process data. //线程休眠5个毫秒,尽可能早的处理是否可以容忍5ms的延误,如果可以就这么做 Thread.Sleep(5); //如果不可以,Sleep(0)让出cpu的执行权,如果有别的进程等待使用cpu则其他进程可以获得cpu Thread.Sleep(0); }
2008/8/19 10:59:42 回答者:玉开


提问者对于答案的评价:谢谢。问题已经解决、、、、
其它回答(3)
同上
3个月前   回答者:West - 小虾三级
同上 不过最好多休息下500毫秒 跑快了 会跑死的
3个月前   回答者:小眼睛老鼠 - 小虾三级
可以用上面各位的轮询方式检查消息队列,也可以用信号方式等待消息队列。 及 while 循环中等待一个信号量,当消息队列中有消息时,由消息队列的管理线程设置这个信号量,while循环得到这个信号量后往下执行。
3个月前   回答者:eaglet - 老鸟四级
评论
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题



> 问题排行榜

相关内容

相关链接