Windows服务需要重新启动才能检测已卸载的应用程序

时间:2018-04-10 11:33:34

标签: c# windows-services

我已经为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;

        }
    }

0 个答案:

没有答案