C#做的串口监听小软件.数据量比较大,按键点不开,怎么处理?
C#做的串口监听小软件,数据量比较大,按键点不开,怎么处理呀?串口不停的有数据进来(50ms一帧),接收并顺次追加显示在TextBox界面上,这都很正常,但是就在这时候候按键要点几十下才偶尔有效。还有下拉菜单,一点又缩回去了。 C#不了解,不过一般接收处理数据不是放在另外线程的么?跟主界面分开,通过消息之类传送到主界面线程,不然的话主界面就得卡死了 每个串口一个线程,阻塞+接收限时,不影响主线程刷UI 你把接收和刷新的代码发上来截图看看 数据量特别大不要用定时器刷新界面。 本帖最后由 天下乌鸦一般黑 于 2022-9-11 22:16 编辑
我的处理方式是。和单片机类似。
串口收发数据和ui没关系,就是放进buffer里。这个过程不要去做什么托管更新ui之类的,就只是缓存好数据,处理好协议解析。
然后你单独开个线程,刷新ui就行了。
这个方式500hz的帧率依然没问题。
如果在串口里触发ui,会引入非预期的结果。你可以测试下。
比如在串口收发过程中,你用鼠标左键,点击winform的窗体,按住不动,你会发现,如果此时用chart绘图,用鼠标点击住winform窗体不松开,会丢数据,不连贯了。 多进程
页:
[1]