请教,我的C# Winform程序,运行起来cpu占用率接近50%,如何降低?
问题如题。这个是个定时采集数据传递到服务器的工具,需要一直运行着,后台用一个线程每隔55秒就判断一次时间,是否到了设定的传输时间,到了点就传送。(System.Threading.Thread.Sleep(1000 * 55))
现在它不传输的时候,我看了下cpu占用率50% 左右。换到一个双核的电脑上,则占用率是25%。这样太占用资源了,请教各位大侠,如何降低它的cpu占用率呢?
--------------------编程问答-------------------- 自己顶一下 --------------------编程问答-------------------- 你的线程是主线程,还有创建的新线程。如果是主线程,这样写就会死在那里。所以最好的创建一个新的线程实现。 --------------------编程问答-------------------- 查看不传输的时候程序都在做什么 --------------------编程问答-------------------- 肯定有程序一直载运行。看看while的代码 --------------------编程问答-------------------- 如:Thread thread = new Thread(this.NewThread);
thread.Start();
private void NewThread(object parameter)
{
Thread.Sleep(1000 * 55);
} --------------------编程问答-------------------- 这个就要看你程序具体如何构建,我想应该还是线程处理不当。 --------------------编程问答-------------------- 恩,我再看看程序的结构还能不能再优化 --------------------编程问答-------------------- 是不是有while(true)这类的语句? --------------------编程问答-------------------- 因为你死循环了。。。新开线程吧。。。要是任务简单就用timer把 --------------------编程问答-------------------- 可能是一个线程一直占用资源造成的吧,应该让你的线程适当的释放资源给其它线程 --------------------编程问答-------------------- 应该是你的程序一直在运行算法 --------------------编程问答-------------------- 还是贴代码吧。 --------------------编程问答-------------------- 你是什么CPU --------------------编程问答-------------------- 可能有死循环吧 --------------------编程问答-------------------- 应该是死循环处理不当
补充:.NET技术 , C#