C# TextBox数据显示慢怎么解决
代码如下,测试了一下,下面代码执行10次大约需要10-50ms,但我需要实时刷新,刷新频率肯定要10ms以下的,有没有大
switch (obj.ID)
{
case 0x0:
{
A_IGBT_T.Text = (((double)((short)(obj.Data[0] + (obj.Data[1]) * 256))) * 0.1).ToString();
B_IGBT_T.Text = (((double)((short)(obj.Data[2] + (obj.Data[3]) * 256))) * 0.1).ToString();
C_IGBT_T.Text = (((double)((short)(obj.Data[4] + (obj.Data[5]) * 256))) * 0.1).ToString();
G_Dr_B_T.Text = (((double)((short)(obj.Data[6] + (obj.Data[7]) * 256))) * 0.1).ToString();
};break;
case 0x1:
{
Ctrl_Board_T.Text = (((double)((short)(obj.Data[0] + (obj.Data[1]) * 256))) * 0.1).ToString();
RTD1_T.Text = (((double)((short)(obj.Data[2] + (obj.Data[3]) * 256))) * 0.1).ToString();
RTD2_T.Text = (((double)((short)(obj.Data[4] + (obj.Data[5]) * 256))) * 0.1).ToString();
RTD3_T.Text = (((double)((short)(obj.Data[6] + (obj.Data[7]) * 256))) * 0.1).ToString();
};break;
case 0x2:
{
RTD4_T.Text = (((double)((short)(obj.Data[0] + (obj.Data[1]) * 256))) * 0.1).ToString();
RTD5_T.Text = (((double)((short)(obj.Data[2] + (obj.Data[3]) * 256))) * 0.1).ToString();
Motor_T.Text = (((double)((short)(obj.Data[4] + (obj.Data[5]) * 256))) * 0.1).ToString();
Torque_Shudder = ((double)((short)(obj.Data[6] + (obj.Data[7]) * 256))) * 0.1;
Trq_Shudder.Text = Torque_Shudder.ToString();
}; break;
case 0x3:
{
Ana_Vol1.Text = (((double)((short)(obj.Data[0] + (obj.Data[1]) * 256))) * 0.01).ToString();
Ana_Vol2.Text = (((double)((short)(obj.Data[2] + (obj.Data[3]) * 256))) * 0.01).ToString();
Ana_Vol3.Text = (((double)((short)(obj.Data[4] + (obj.Data[5]) * 256))) * 0.01).ToString();
Ana_Vol4.Text = (((double)((short)(obj.Data[6] + (obj.Data[7]) * 256))) * 0.01).ToString();
}; break;
case 0x4:
{
Dig_1.BackColor = (obj.Data[0] != 0) ? Color.Blue : Color_;
Dig_2.BackColor = (obj.Data[1] != 0) ? Color.Blue : Color_;
Dig_3.BackColor = (obj.Data[2] != 0) ? Color.Blue : Color_;
Dig_4.BackColor = (obj.Data[3] != 0) ? Color.Blue : Color_;
Dig_5.BackColor = (obj.Data[4] != 0) ? Color.Blue : Color_;
Dig_6.BackColor = (obj.Data[5] != 0) ? Color.Blue : Color_;
Dig_7.BackColor = (obj.Data[6] != 0) ? Color.Blue : Color_;
Dig_8.BackColor = (obj.Data[7] != 0) ? Color.Blue : Color_;
}; break;
case 0x5:
{
MotorAng.Text = (((double)((obj.Data[0] + (obj.Data[1]) * 256))) * 0.1).ToString();
Motor_Speed = (((short)(obj.Data[2] + (obj.Data[3]) * 256)));
Elec_Frq.Text = (((double)((short)(obj.Data[4] + (obj.Data[5]) * 256))) * 0.1).ToString();
Delta_Rsv.Text = (((double)((short)(obj.Data[6] + (obj.Data[7]) * 256))) * 0.1).ToString();
MotorSpd.Text = Motor_Speed.ToString();
}; break;
case 0x6:
{
Current_A = ((double)((short)(obj.Data[0] + (obj.Data[1]) * 256))) * 0.1;
Current_B = ((double)((short)(obj.Data[2] + (obj.Data[3]) * 256))) * 0.1;
Current_C = ((double)((short)(obj.Data[4] + (obj.Data[5]) * 256))) * 0.1;
Current_DC = ((double)((short)(obj.Data[6] + (obj.Data[7]) * 256))) * 0.1;
A_Current.Text = Current_A.ToString();
B_Current.Text = Current_B.ToString();
C_Current.Text = Current_C.ToString();
DC_Current.Text = Current_DC.ToString();
}; break;
case 0x7:
{
Voltage_DC = ((double)((short)(obj.Data[0] + (obj.Data[1]) * 256))) * 0.1;
Vol_OUT.Text = (((double)((short)(obj.Data[2] + (obj.Data[3]) * 256))) * 0.1).ToString();
Voltage_AB = ((double)((short)(obj.Data[4] + (obj.Data[5]) * 256))) * 0.1;
Voltage_BC = ((double)((short)(obj.Data[6] + (obj.Data[7]) * 256))) * 0.1;
Vol_AB.Text = Voltage_AB.ToString();
Vol_BC.Text = Voltage_BC.ToString();
Vol_DC.Text = Voltage_DC.ToString();
}; break;
case 0x8:
{
Flux_Cmd.Text = (((double)((short)(obj.Data[0] + (obj.Data[1]) * 256))) * 0.001).ToString();
Flux_Fb.Text = (((double)((short)(obj.Data[2] + (obj.Data[3]) * 256))) * 0.001).ToString();
ID_Feedback.Text = (((double)((short)(obj.Data[4] + (obj.Data[5]) * 256))) * 0.1).ToString();
IQ_Feedback.Text = (((double)((short)(obj.Data[6] + (obj.Data[7]) * 256))) * 0.1).ToString();
}; break;
case 0x9:
{
Vol_1_5V.Text = (((double)((short)(obj.Data[0] + (obj.Data[1]) * 256))) * 0.01).ToString();
Vol_2_5V.Text = (((double)((short)(obj.Data[2] + (obj.Data[3]) * 256))) * 0.01).ToString();
Vol_5V.Text = (((double)((short)(obj.Data[4] + (obj.Data[5]) * 256))) * 0.01).ToString();
Vol_12V.Text = (((double)((short)(obj.Data[6] + (obj.Data[7]) * 256))) * 0.01).ToString();
}; break;
case 0xA:
{
VSM_State.SelectedIndex = ((obj.Data[0]) + (obj.Data[1]) * 256);
Inver_State.SelectedIndex = obj.Data[2];
Relay_1.BackColor = ((obj.Data[3] & 1) != 0) ? Color.Blue : Color_;
Relay_2.BackColor = ((obj.Data[3] & 2) != 0) ? Color.Blue : Color_;
Relay_3.BackColor = ((obj.Data[3] & 4) != 0) ? Color.Blue : Color_;
Relay_4.BackColor = ((obj.Data[3] & 8) != 0) ? Color.Blue : Color_;
Relay_5.BackColor = ((obj.Data[3] & 16) != 0) ? Color.Blue : Color_;
Relay_6.BackColor = ((obj.Data[3] & 32) != 0) ? Color.Blue : Color_;
Run_Mode.SelectedIndex = ((obj.Data[4] & 1) != 0) ? 1 : 0;
Act_Discharge.SelectedIndex = ((obj.Data[4] & 16) != 0) ? 1 : 0;
Cmd_Mode.SelectedIndex = ((obj.Data[5] & 1) != 0) ? 1 : 0;
Inv_En_State.SelectedIndex = ((obj.Data[6] & 1) != 0) ? 1 : 0;
Inv_En_Lock.SelectedIndex = ((obj.Data[6] & 16) != 0) ? 1 : 0;
Dir_Cmd.SelectedIndex = ((obj.Data[7] & 1) != 0) ? 1 : 0;
}; break;
case 0xB:
{
POST_F_L.Text = ((obj.Data[0] + (obj.Data[1]) * 256)).ToString();
POST_F_H.Text = ((obj.Data[2] + (obj.Data[3]) * 256)).ToString();
RUN_F_L.Text = ((obj.Data[4] + (obj.Data[5]) * 256)).ToString();
RUN_F_H.Text = ((obj.Data[6] + (obj.Data[7]) * 256)).ToString();
}; break;
case 0xC:
{
Trq_Cmd.Text = (((double)((short)(obj.Data[0] + (obj.Data[1]) * 256))) * 0.1).ToString();
Torque_Feedback = ((double)((short)(obj.Data[2] + (obj.Data[3]) * 256))) * 0.1;
Trq_Fb.Text = Torque_Feedback.ToString();
Power_Time.Text = (((uint)(obj.Data[4]) + ((uint)(obj.Data[5]) << 8) + ((uint)(obj.Data[6]) << 16) + ((uint)(obj.Data[7]) << 24)) * 0.003).ToString();
}; break;
case 0xD:
{
Modul_Idx.Text = (((double)(obj.Data[0]) + ((double)(obj.Data[1]) * 256)) * 0.0001).ToString();
Weak_Current.Text = (((double)(obj.Data[2]) + ((double)(obj.Data[3]) * 256)) * 0.1).ToString();
ID_Command.Text = (((double)((short)(obj.Data[4] + (obj.Data[5]) * 256))) * 0.1).ToString();
IQ_Command.Text = (((double)((short)(obj.Data[6] + (obj.Data[7]) * 256))) * 0.1).ToString();
}; break;
case 0xF:
{
Buffer_Record.Text = obj.Data[0].ToString();
Buffer_Segment.Text = obj.Data[1].ToString();
Diag_1.Text = (((obj.Data[2]) + ((obj.Data[3]) * 256))).ToString();
Diag_2.Text = (((obj.Data[4]) + ((obj.Data[5]) * 256))).ToString();
Diag_3.Text = (((obj.Data[6]) + ((obj.Data[7]) * 256))).ToString();
}; break;
default:; break;
}