c # - Windows-tjenesten virker ikke at blive stoppet uden fejl

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har søgt overalt for dette, men jeg sidder stadig fast i dette i løbet af de sidste par dage. Jeg har en tjeneste, der bruges til at kalde en metode efter hvert 5. minut


public Service1()
        {
            InitializeComponent();
        }
        private Timer \_timer;
        protected override void OnStart(string[] args)
        {
            \_timer = new Timer(5*60*1000);
            \_timer.Elapsed += new ElapsedEventHandler(OnTimerElapsed);
            \_timer.AutoReset = true;
            \_timer.Start();
        }
        private void OnTimerElapsed(object sender, ElapsedEventArgs e)
        {
            var FuncFlag = false;
            \_timer.Stop();
            send\_email("Going To Call API MEthod");
            FuncFlag = Authorization();

            \_timer.Start();

            if (!FuncFlag)
            {
                send\_email("Service Failure for Authorization");
            }
        }
        public static bool Authorization()
        {
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri("http://**.**.**.**:****/");
            HttpResponseMessage response = client.GetAsync("api/values/checkauthorization/).Result;
            if (response.IsSuccessStatusCode)
            {
                send\_email("Response Success");
                return true;
            }
            else
            {
                send\_email("Response Failed");
                return false;
            }
        }

        protected override void OnStop()
        {
            \_timer.Stop();
            \_timer.Dispose();
        }
}


På metoden skal jeg få nogle værdier for at få dem gemt i DB. Jeg vil bare kalde denne metode hvert 5. minut, hjælper mig, hvis jeg har savnet noget i dette eller lad mig vide, om der er en bedre måde at opnå dette på.

Bedste reference