线程使用是必须的吗

flyangle225 2014-08-14 05:46:25
200KHz的采样频率,也就是5微秒采集一个数据,采集是由下位机定时完成,但通过串口传递给上位机,上位机需要实时显示动态曲线或者数据,那么上位机应该也是5微秒要画1个点吧,这样的情况是不是必须要用多线程编程,1个线程通讯和存储数据,1个线程画图,主线程响应鼠标等界面操作,我的想法对吗?
或者上位机是否可以也用定时器,定时收取数据和画图,不用线程,可行吗?
...全文
284 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2014-08-15
  • 打赏
  • 举报
回复
如果不需要操作,你用阻塞方式也可以。
宝龙哥 2014-08-15
  • 打赏
  • 举报
回复
屏幕是整体刷新的,在同一时刻画1个点和画100个点是一样的,因此你0.2秒画40个点足可
宝龙哥 2014-08-15
  • 打赏
  • 举报
回复
实时画屏幕不要理解为真的一毫秒不差,而是要考虑人的眼睛和大脑的延时,人的眼睛有0.1妙的反应时间,加上大脑的判断时间0.2妙完全足够
宝龙哥 2014-08-15
  • 打赏
  • 举报
回复
要用多线程的,尤其是界面,不要看不起它,对于你间隔这么小的时间来说它其实是很耗费时间的

你应该是用一个单独的线程接收数据,然后不要写屏幕,而是存入内存,然后用一个单独的线程把图画到屏幕,这个可以用计时器,比如200毫秒画一次即可
1cctv 2014-08-15
  • 打赏
  • 举报
回复
屏幕一般刷新率是60hz,超过这个就没用了. 你一秒画200次,屏屏幕也只更新60次.
  • 打赏
  • 举报
回复
串口通信中自带有接收数据的线程,调用那个函数就行 在接收玩数据的语句下面添加画点程序

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧