次のコードをもう少し効率的にしようとしています。正常に動作しますが、プロセッサ リソースの 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 サービスにするつもりでコンソール アプリに書きました。