请教,我的C# Winform程序,运行起来cpu占用率接近50%,如何降低?

YuccaWei 2011-11-10 01:21:02
问题如题。
这个是个定时采集数据传递到服务器的工具,需要一直运行着,后台用一个线程每隔55秒就判断一次时间,是否到了设定的传输时间,到了点就传送。(System.Threading.Thread.Sleep(1000 * 55))

现在它不传输的时候,我看了下cpu占用率50% 左右。换到一个双核的电脑上,则占用率是25%。这样太占用资源了,请教各位大侠,如何降低它的cpu占用率呢?

...全文
1489 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuqigui 2011-11-11
  • 打赏
  • 举报
回复
应该是死循环处理不当
heli_1005 2011-11-11
  • 打赏
  • 举报
回复
可能有死循环吧
shan7719515 2011-11-11
  • 打赏
  • 举报
回复
你是什么CPU
mjp1234airen4385 2011-11-11
  • 打赏
  • 举报
回复
还是贴代码吧。
  • 打赏
  • 举报
回复
应该是你的程序一直在运行算法
「已注销」 2011-11-11
  • 打赏
  • 举报
回复
可能是一个线程一直占用资源造成的吧,应该让你的线程适当的释放资源给其它线程
heroseven 2011-11-10
  • 打赏
  • 举报
回复
因为你死循环了。。。新开线程吧。。。要是任务简单就用timer把
宝_爸 2011-11-10
  • 打赏
  • 举报
回复
是不是有while(true)这类的语句?
YuccaWei 2011-11-10
  • 打赏
  • 举报
回复
恩,我再看看程序的结构还能不能再优化
liu513133872 2011-11-10
  • 打赏
  • 举报
回复
这个就要看你程序具体如何构建,我想应该还是线程处理不当。
天二天 2011-11-10
  • 打赏
  • 举报
回复
如:Thread thread = new Thread(this.NewThread);
thread.Start();


private void NewThread(object parameter)
{
Thread.Sleep(1000 * 55);
}
mabaolin 2011-11-10
  • 打赏
  • 举报
回复
肯定有程序一直载运行。看看while的代码
Bullatus 2011-11-10
  • 打赏
  • 举报
回复
查看不传输的时候程序都在做什么
天二天 2011-11-10
  • 打赏
  • 举报
回复
你的线程是主线程,还有创建的新线程。如果是主线程,这样写就会死在那里。所以最好的创建一个新的线程实现。
YuccaWei 2011-11-10
  • 打赏
  • 举报
回复
自己顶一下

111,094

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧