首页 > 解决方案 > 哪个是监视多个 Windows 服务的最佳方法 - 计时器或线程

问题描述

我有一个监控系统中多个 Windows 服务的项目。这个项目所做的是监视所有这些服务,无论它们是否正常工作。如果他们停止工作,则会向相关人员发送一封邮件。

为了管理这一切,多个服务有多个计时器。就像是 -

System.Timers.Timer ServiceOneTimer;
System.Timers.Timer ServiceTwoTimer;

具有特定间隔的计时器,在他们的 Elapsed 事件中检查该特定服务的状态 -

private void ServiceOneTimer_Elapsed(object sender, ElapsedEventArgs e)
{
    ServiceOneTimer.Stop();
    bool isRunning = CheckServiceOne();

    if (!isRunning)
        SendMail("Sevice 1 has been stopped");
} 

我想知道是否有更好的方法来实现这一目标?因为将来可能有许多服务需要监控。在这种情况下使用计时器是否可取?还是Thread应该使用其他类似的东西?

标签: c#multithreadingwinformstimer

解决方案


推荐阅读