简体   繁体   中英

C# application slows Down after 20-30 mins?

I have c# application which reads data from serial port. I have put serial read handler in timer with interval 1 second , because data coming every 1 second on timer I calling

delegate void SetTextCallback(string text);
ReceivedText(serialPort1.ReadExisting());

I also showing received data in richtextbox just to check it getting proper data or not. But after 15-20 mins application slows down wont even respond.

 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);
                }
            }
        }
    }

There is a chance that this.rtbReceived.Text grows up after some time. Even if it doesn't use huge amount of memory, constantly manipulating String is not efficent. Have you considered using StringBuilder instead?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM