Example #1
0
        public void UpdateMyNodeStatus(MyNodeStatus myNodeStatus)
        {
            if (this.InvokeRequired)
            {
                UpdateMyNodeStatusDel del = new
                                            UpdateMyNodeStatusDel(UpdateMyNodeStatus);
                this.Invoke(del, myNodeStatus);
            }
            else
            {
                if (myNodeStatus == null)
                {
                    labelX_CpuUsage.Text                       = string.Empty;
                    labelX_MemoryUsage.Text                    = string.Empty;
                    labelX_TotalThreadCount.Text               = string.Empty;
                    labelX_MaxWorkingThreads.Text              = string.Empty;
                    labelX_AvailableWorkingThreads.Text        = string.Empty;
                    labelX_MaxCompletionPortThreads.Text       = string.Empty;
                    labelX_AvailableCompletionPortThreads.Text = string.Empty;
                    dataGridView_ServerStatus.DataSource       = new List <MyInstancesStatus>();
                    labelX_CollectedTime.Text                  = string.Empty;
                    return;
                }
                MyBootstrapStatus myBootstrapStatus = myNodeStatus.MyBootstrapStatus;
                labelX_CpuUsage.Text                       = Math.Round(double.Parse(myBootstrapStatus.CpuUsage), 2).ToString() + "%";
                labelX_MemoryUsage.Text                    = myBootstrapStatus.MemoryUsage;
                labelX_TotalThreadCount.Text               = myBootstrapStatus.TotalThreadCount;
                labelX_MaxWorkingThreads.Text              = myBootstrapStatus.MaxWorkingThreads;
                labelX_AvailableWorkingThreads.Text        = myBootstrapStatus.AvailableWorkingThreads;
                labelX_MaxCompletionPortThreads.Text       = myBootstrapStatus.MaxCompletionPortThreads;
                labelX_AvailableCompletionPortThreads.Text = myBootstrapStatus.AvailableCompletionPortThreads;

                myNodeStatus.MyInstancesStatus.ForEach(_ =>
                {
                    _.IsRunning = _.IsRunning == "True" ? "运行中" : "停止";
                });

                dataGridView_ServerStatus.DataSource = myNodeStatus.MyInstancesStatus;
                dataGridView_ServerStatus.Rows[seletedRowsIndex].Selected = true;
                for (int i = 0; i < dataGridView_ServerStatus.Rows.Count; i++)
                {
                    if (dataGridView_ServerStatus.Rows[i].Cells[3].Value.ToString() == "运行中")
                    {
                        dataGridView_ServerStatus.Rows[i].Cells[3].Style.BackColor = Color.Green;
                    }
                    else
                    {
                        dataGridView_ServerStatus.Rows[i].Cells[3].Style.BackColor = Color.Red;
                    }
                }
                labelX_CollectedTime.Text = myNodeStatus.MyInstancesStatus.Count > 0 ? myNodeStatus.MyInstancesStatus[0].CollectedTime : "";
            }
        }
        protected override void ProcessProtocol(object arg)
        {
            string content  = string.Empty;
            string protocol = arg as string;

            if (protocol.StartsWith(ManagementServerCommand.ManagementServer.ToString()))
            {
                content = protocol.Substring(ManagementServerCommand.ManagementServer.ToString().Length).Trim();
                try
                {
                    MyNodeStatus myNodeStatus = JsonConvert.DeserializeObject <MyNodeStatus>(content);
                    OMClientManager.myNodeStatus = myNodeStatus;
                    if (UpdateMyNodeStatus != null)
                    {
                        UpdateMyNodeStatus(myNodeStatus);
                    }
                }
                catch
                { }
            }
            else if (protocol.StartsWith(ManagementServerCommand.ManagementResult.ToString()))
            {
                content = protocol.Substring(ManagementServerCommand.ManagementResult.ToString().Length).Trim();
                try
                {
                    ManagementResult managementResult = JsonConvert.DeserializeObject <ManagementResult>(content);
                    if (managementResult.result == true)
                    {
                        OMClientManager.myNodeStatus = managementResult.MyNodeStatus;
                        if (UpdateMyNodeStatus != null)
                        {
                            UpdateMyNodeStatus(OMClientManager.myNodeStatus);
                        }
                    }
                }
                catch
                { }
            }
        }