Hi all,
Thank you for all of your help on getting me this far. My service is coming along fine and I now what it to stop if there is a problem. In my OnStart method I start my thread for the service. To stop a service it was suggested that I set a flag and have the thread test for it.
In my thread I initiate a timer object to run my process at the desired interval. If my process fails I set a flag in the class. The next time the timer runs it checks this flag and if the process failed the timer is disabled. While I am in the OnServiceElapsedTime method is there a way to get the thread to check that the timer has been deactivated and that the thread should close?
Thanks for the advice.
Steve
Code:namespace CoReplication { public class Replication : System.ServiceProcess.ServiceBase { public Replication() { } static void Main() { System.ServiceProcess.ServiceBase[] ServicesToRun; ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Replication() }; System.ServiceProcess.ServiceBase.Run(ServicesToRun); } private void OnServiceElapsedTime(object source, System.Timers.ElapsedEventArgs e) if (_replicationMain.Failed() == false) { _replicationMain.Start(); } else { _serviceTimer.Enabled = false; } protected override void OnStart(string[] args) { Thread t = new Thread(new ThreadStart(StartService)); t.Start(); } protected override void OnStop() { StopService(); } private void StartService() { _serviceTimer.Enabled = true; } private void StopService() { _replicationMain.Stop(); } } }




Reply With Quote