Several Windows services can share a single process. In C #, they start as:
ServiceBase.Run(new MyService1(), new MyService2());
The run method call blocks the thread in which main() is executed. At the same time, service events are being processed. So where do they run?
Do they use an asynchronous procedure call in the "main" process, which is not just blocked, but in a waiting state? If so, process sharing for several services has a performance penalty. Do handlers work in separate threads? Are they executed outside the process containing the Run() call?
Serg
source share