Exemplo n.º 1
0
        protected override void OnStart(string[] args)
        {
            EventLog.WriteEntry("OnStart");

            var serviceStatus = new ServiceStatus
            {
                dwCurrentState = ServiceState.SERVICE_START_PENDING, dwWaitHint = 100000
            };

            SetServiceStatus(this.ServiceHandle, ref serviceStatus);

            lock (locker)
            {
                if (watcher == null)
                {
                    watcher = new Watcher();
                }
            }

            serviceStatus.dwCurrentState = ServiceState.SERVICE_RUNNING;
            SetServiceStatus(this.ServiceHandle, ref serviceStatus);
        }
Exemplo n.º 2
0
        protected override void OnStop()
        {
            EventLog.WriteEntry("OnStop.");

            var serviceStatus = new ServiceStatus
            {
                dwCurrentState = ServiceState.SERVICE_STOP_PENDING, dwWaitHint = 100000
            };

            SetServiceStatus(this.ServiceHandle, ref serviceStatus);

            lock (locker)
            {
                if (watcher != null)
                {
                    watcher.Dispose();
                    watcher = null;
                }
            }

            serviceStatus.dwCurrentState = ServiceState.SERVICE_STOPPED;
            SetServiceStatus(this.ServiceHandle, ref serviceStatus);
        }