我最近构建了一个使用单个线程定期处理信息的服务。该服务是使用Microsoft Visual Studio 2010 Express构建的。我注意到CPU使用率飙升到了100%。
后来,出于好奇,我构建了一个非常小的程序,它只是启动一个小线程或计时器,然后运行一些非常长的循环。我还从构建控制台应用程序转换为Windows窗体应用程序。通过更改程序类型来构建,我能够减少麻烦。
我尝试降低线程的优先级:
我曾认为CPU使用率可能是由于在虚拟机上运行而导致的。但这个理论没有给我带来任何进展,这很荒谬。我不知道该往哪里走了。我不确定为什么在.NET框架中启动计时器或线程会使我的CPU使用率飙升。当我构建COM对象时从未遇到过这种情况。有人有任何好主意可以指点一下吗?感谢您提前花费的时间。
后来,出于好奇,我构建了一个非常小的程序,它只是启动一个小线程或计时器,然后运行一些非常长的循环。我还从构建控制台应用程序转换为Windows窗体应用程序。通过更改程序类型来构建,我能够减少麻烦。
我尝试降低线程的优先级:
System.Threading.Thread.CurrentThread.Priority = ThreadPriority.Lowest;
我也尝试设置了优先级类别。
Process p = Process.GetCurrentProcess();
p.PriorityClass = ProcessPriorityClass.BelowNormal;
我曾认为CPU使用率可能是由于在虚拟机上运行而导致的。但这个理论没有给我带来任何进展,这很荒谬。我不知道该往哪里走了。我不确定为什么在.NET框架中启动计时器或线程会使我的CPU使用率飙升。当我构建COM对象时从未遇到过这种情况。有人有任何好主意可以指点一下吗?感谢您提前花费的时间。