C# TextBox控件 显示大量数据


       串口通信:在使用TextBox空间显示数据时,因为要显示大量的接收到的数据,当数据量大且快速(串口1ms发送一条数据)时,使用+=的方式仍然会造成界面的卡顿(已使用多线程处理),但使用AppendText效果就会好一点。

       代码:

    

 1  Thread dataThread = new Thread(delegate()
 2            {
 3                while (threadFlag)
 4                {
 5                    if (Port != null && Port.IsOpen)
 6                    {
 7                        length = Port.BytesToRead;
 8                        if (length > 0)
 9                        {
10 
11                            bytes = new byte[length];
12                            Port.Read(bytes, 0, length);
13                           
14                            tcp.SendData(bytes);
15                           
16                            if (textBox.InvokeRequired)
17                            {
18 
19                                textBox.Invoke(new Action<string>(s =>
20                                {
21                                    textBox.AppendText(s + Environment.NewLine);
22                                    textBox.SelectionStart = textBox.TextLength;
23                                    textBox.ScrollToCaret();
24 
25                                }), System.Text.Encoding.ASCII.GetString(bytes));
26 
27                            }
28                            else
29                            {
30                                textBox.AppendText(System.Text.Encoding.ASCII.GetString(bytes) + Environment.NewLine);
31                                textBox.SelectionStart = textBox.TextLength;
32                                textBox.ScrollToCaret();
33 
34                            }
35                        }
36 
37                    }
38                    Thread.Sleep(1);
39                }
40 
41            });
42            dataThread.IsBackground = true;
43            dataThread.Name = PortName;
44            dataThread.Start();
45        }
46 
47    }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM