我已经为Windows服务编写了一个代码,用于读取系统中已安装的应用程序。当我升级或降级特定应用程序的版本时,该服务会在下一个时间间隔内检测到它。但是,如果我从设备中卸载应用程序,则该服务无法在该时间间隔内检测到该应用程序。我需要手动重启服务以检测是否已卸载该服务。
重启在间隔命中期间没有发生的服务会发生什么不同的事情?
修改
以下是示例代码
public partial class Scheduler : ServiceBase
{
private Timer timer;
public Scheduler()
{
try
{
InitializeComponent();
{
}
}
catch (Exception ex)
{
log.Error(ex.Message, ex);
}
}
protected override void OnStart(string[] args)
{
timer = new Timer(900000);
timer.AutoReset = true;
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
timer.Start();
}
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
try
{
timer.Stop();
UpdateInfoForPID();//method to get installed applications
}
catch (Exception ex)
{
log.Error(ex.Message, ex);
}
finally
{
timer.Start();
}
}
protected override void OnStop()
{
timer.Stop();
timer = null;
}
}