protected override void OnStart(string[] args) { try { base.OnStart(args); int delay = 0; lock (lockShutdown) { hasShutteddown = false; errorHandler = new ErrorHandler(serviceEventLog, lockLog); setInstallationWorkingDirectory(); config = CallSelectorFactory.loadISelectorConfig(new FileInfo("CallSelectorConfig.xml")); delay = config.HostRequestDelayMilliseconds(); processingThread = new Thread(new ThreadStart(RunProcessing)); processingThread.Start(); } lock (lockLog) { serviceEventLog.WriteEntry("Start. delay=" + delay + "; " + (config.LogDebug() ? "debug=true" : "debug=false")); } } catch (ThreadAbortException) { /*ignore*/} catch (Exception e) { if (null != errorHandler) errorHandler.handle(e); } }