|
本帖最后由 SUPER_CRJ 于 2017-11-19 11:01 编辑
用C#编写了一个上位机软件,用来处理STM32通过串口发送来的数据。需要用textbox显示接收到的数据,但是发现没有加上这语句,电脑CPU占用率在4%,但是一旦用上之后,CPU就上到了30%,因为这样,数据延迟比较严重,而且会丢数据。
代码是这样写的(大约需要每秒运行500次,才合格,但是现在每秒到了200多次,就开始大量占用CPU了):
txb_DataShow.AppendText(DGVD.Index.ToString().PadRight(8, ' ') + " " + DGVD.TransferDir + " " +DGVD.OperateTime + " " + DGVD.IDType + " " + DGVD.DataType + " " +DGVD.FrameID.ToString("X").PadLeft(8, '0') + " " + DGVD.DataLength.ToString() + " " + DGVD.Data + "\t\n\t\n");
谢谢大家,当前已经解决,主要就是用复用StringBuilder类,因为用String类据说是不可变长度,而且每次调用都要重新创建,所以占用资源较大,改为SrtingBuilder类之后,当前每秒更新1000次,都不产生延迟,另外也谢谢大家提出的每秒更新频率的问题,的确是不应该更新的这么快,现在时间改为20ms刷新一次,显示效果非常不错。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|