c#应用程序在20-30分钟后变慢
本文关键字:20-30分钟 应用程序 | 更新日期: 2023-09-27 18:17:25
我有c#应用程序从串口读取数据。我已经把串行读取处理程序在定时器间隔1秒,因为数据来每1秒on timer I调用
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);
}
}
}
}
this.rtbReceived.Text
有可能在一段时间后长大。即使它不使用大量内存,不断地操作String
也是低效的。你考虑过用StringBuilder
代替吗?