Example #1
0
        /// <summary>
        /// Execute a action (start, stop, restart) on Microsoft Exchange Transport service
        /// </summary>
        /// <param name="action">TransportServiceAction</param>
        public void Do(TransportServiceAction action, Action <string> errorCallback)
        {
            this.errorCallback = errorCallback;
            lock (actions)
            {
                switch (action)
                {
                case TransportServiceAction.Start:
                case TransportServiceAction.Stop:
                    actions.Enqueue(action);
                    break;

                case TransportServiceAction.Restart:
                    actions.Enqueue(TransportServiceAction.Stop);
                    actions.Enqueue(TransportServiceAction.Start);
                    break;
                }
            }

            if (thread == null || thread.ThreadState == ThreadState.Stopped)
            {
                thread = new Thread(ExecuteAction);
                thread.Start();
            }
        }
        /// <summary>
        /// Execute a action (start, stop, restart) on Microsoft Exchange Transport service
        /// </summary>
        /// <param name="action">TransportServiceAction</param>
        public void Do(TransportServiceAction action)
        {
            lock(this.actions)
            {
                switch (action)
                {
                    case TransportServiceAction.Start:
                    case TransportServiceAction.Stop:
                        this.actions.Enqueue(action);
                        break;
                    case TransportServiceAction.Restart:
                        this.actions.Enqueue(TransportServiceAction.Stop);
                        this.actions.Enqueue(TransportServiceAction.Start);
                        break;
                }
            }

            if(this.thread == null || this.thread.ThreadState == ThreadState.Stopped)
            {
                this.thread = new Thread(this.ExecuteAction);
                this.thread.Start();
            }
        }
        /// <summary>
        /// Execute a action (start, stop, restart) on Microsoft Exchange Transport service
        /// </summary>
        /// <param name="action">TransportServiceAction</param>
        public void Do(TransportServiceAction action, Action<string> errorCallback)
        {
            this.errorCallback = errorCallback;
            lock(actions)
            {
                switch (action)
                {
                    case TransportServiceAction.Start:
                    case TransportServiceAction.Stop:
                        actions.Enqueue(action);
                        break;
                    case TransportServiceAction.Restart:
                        actions.Enqueue(TransportServiceAction.Stop);
                        actions.Enqueue(TransportServiceAction.Start);
                        break;
                }
            }

            if(thread == null || thread.ThreadState == ThreadState.Stopped)
            {
                thread = new Thread(ExecuteAction);
                thread.Start();
            }
        }