Does ServiceBase.Run(ServiceBase[] ) method run all services in array asynchronously?
ServiceBase[] servicesToRun; servicesToRun = new ServiceBase[] { new Service1(), new Service2() }; ServiceBase.Run(servicesToRun); How will this work? Will Service1 be run, and when its OnStart() is done, Service2's OnStart() will be run, or both of them will run at the same time? If that's the case, and I explicitly want Service1's OnStart to be done before running Service2.OnStart() , how would I go? Would this do the trick: ServiceBase.Run(new Service1()) ServiceBase.Run(new Service2()) You are misunderstanding what ServiceBase.Run() actually does. From the documentation : Registers the