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 { } } }