我有从串口读取数据的 c# 应用程序。我已将串行读取处理程序放入计时器中,间隔为 1 秒,因为我调用的计时器上每隔 1 秒就有一次数据
delegate void SetTextCallback(string text);
ReceivedText(serialPort1.ReadExisting());
我还在richtextbox 中显示接收到的数据,只是为了检查它是否获得了正确的数据。但 15-20 分钟后应用程序变慢甚至没有响应。
private void ReceivedText(string text)
{
if (this.rtbReceived.InvokeRequired)
{
SetTextCallback x = new SetTextCallback(ReceivedText);
this.Invoke(x, new object[] { (text) });
}
else
{
this.rtbReceived.Text += text;
serialdata = text;
if (serialdata.Length > 0 &&
serialdata.Length < 42 &&
serialdata.Contains("#") ||
serialdata.StartsWith(" #"))
{
serialdata.Trim();
splitdata = serialdata.Split(' ');
try
{
txtBathTemp.Text = splitdata[3];
txtBaroPressure.Text = splitdata[4];
double stemp = double.Parse(splitdata[5]);
txtSampleTemp.Text = (Math.Round(stemp, 2)).ToString();
}
catch (Exception EX)
{
MessageBox.Show(ex.Message);
}
}
}
}