如何在c#中使while语句中的foreach循环有效
本文关键字:foreach 循环 有效 语句 while 中使 | 更新日期: 2023-09-27 18:15:22
我试图使下面的代码更有效一点,它应该工作,但它需要12%的处理器资源。我觉得这件事可以做得更好。
localService是这样的:
public class localService
{
public string ID { get; set; }
public string Name { get; set; }
public string Server { get; set; }
public string Status { get; set; }
}
这是我想要改进的功能。
while (running)
{
try
{
IEnumerable<localService> serviceList = Startup.ServiceList;
foreach (var service in serviceList)
{
using (var sc = new ServiceController(service.ID))
{
if (sc.Status.ToString() != service.Status)
{
// Do some work here
}
}
}
}
catch (Exception)
{
running = false;
}
}
serviceList目前包含4个localService对象。我把它写在一个控制台应用程序中,目的是使它成为一个windows服务。
如果您不需要它尽可能快地运行,您可以在循环末尾添加一个Thread.Sleep(ms);
in。它会导致您的程序在传入的大约毫秒数内什么也不做。
Thread.Sleep(250);
如果执行时间不长,将导致循环每秒运行4次。