public Task StopAsync(CancellationToken cancellationToken)
        {
            _diagnosticsManager.Stop();

            Status = HostedServiceStatus.Stopped;

            return(Task.CompletedTask);
        }
Esempio n. 2
0
        /// <summary>
        /// 获取当前服务的执行状态名称
        /// </summary>
        protected void UpdateServiceStatus(HostedServiceStatus serviceStatus, bool hasError = false)
        {
            if (serviceStatus == HostedServiceStatus)
            {
                return;
            }

            this.HostedServiceStatus = serviceStatus;

            string statusName;
            Color  statusColor;
            string buttonText;
            bool   buttonEnabled;

            switch (serviceStatus)
            {
            case HostedServiceStatus.Stopped:
                if (hasError)
                {
                    statusName  = "已停止,有错误";
                    statusColor = Color.Red;
                }
                else
                {
                    statusName  = "已停止";
                    statusColor = Color.Black;
                }
                buttonText    = "启动";
                buttonEnabled = true;
                break;

            case HostedServiceStatus.Starting:
                statusName    = "正在启动";
                statusColor   = Color.LimeGreen;
                buttonText    = "启动";
                buttonEnabled = false;
                break;

            case HostedServiceStatus.Running:
                statusName    = "正在运行";
                statusColor   = Color.Green;
                buttonText    = "停止";
                buttonEnabled = true;
                break;

            case HostedServiceStatus.Stopping:
                statusName    = "正在停止";
                statusColor   = Color.DarkGray;
                buttonText    = "停止";
                buttonEnabled = false;
                break;

            default:
                statusName    = "未知状态";
                statusColor   = Color.Yellow;
                buttonText    = "未知";
                buttonEnabled = false;
                break;
            }

            lStatus.Text       = statusName;
            lStatus.ForeColor  = statusColor;
            bOperation.Text    = buttonText;
            bOperation.Enabled = buttonEnabled;

            logInfo(statusName);
        }
        /// <summary>
        /// 获取当前服务的执行状态名称
        /// </summary>
        protected void UpdateServiceStatus(HostedServiceStatus serviceStatus, bool hasError = false, string errorMessage = null)
        {
            if (serviceStatus == HostedServiceStatus)
            {
                return;
            }

            this.HostedServiceStatus = serviceStatus;

            string statusName;
            Brush  statusColor;
            string buttonText;
            bool   buttonEnabled;
            string statusTooltip;

            switch (serviceStatus)
            {
            case HostedServiceStatus.Stopped:
                if (hasError)
                {
                    statusName    = "已停止,有错误";
                    statusTooltip = errorMessage;
                    statusColor   = Brushes.Red;
                }
                else
                {
                    statusName    = "已停止";
                    statusColor   = Brushes.Black;
                    statusTooltip = null;
                }
                buttonText    = "启动";
                buttonEnabled = true;
                break;

            case HostedServiceStatus.Starting:
                statusName    = "正在启动";
                statusColor   = Brushes.LimeGreen;
                buttonText    = "启动";
                buttonEnabled = false;
                statusTooltip = null;
                break;

            case HostedServiceStatus.Running:
                statusName    = "正在运行";
                statusColor   = Brushes.Green;
                buttonText    = "停止";
                buttonEnabled = true;
                statusTooltip = null;
                break;

            case HostedServiceStatus.Stopping:
                statusName    = "正在停止";
                statusColor   = Brushes.DarkGray;
                buttonText    = "停止";
                buttonEnabled = false;
                statusTooltip = null;
                break;

            default:
                statusName    = "未知状态";
                statusColor   = Brushes.Yellow;
                buttonText    = "未知";
                buttonEnabled = false;
                statusTooltip = null;
                break;
            }

            StatusText    = statusName;
            StatusColor   = statusColor;
            ButtonText    = buttonText;
            ButtonEnabled = buttonEnabled;
            StatusToolTip = statusTooltip;

            logInfo(statusName);
        }
        public InstrumentationService(DiagnosticManager diagnosticManager)
        {
            _diagnosticsManager = diagnosticManager ?? throw new ArgumentNullException(nameof(diagnosticManager));

            Status = HostedServiceStatus.Created;
        }