首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

采集线程与主线程通信的有关问题

2012-02-12 
采集线程与主线程通信的问题 - C++ Builder / Windows SDK/API现在写一个数据采集程序,不断从采集卡读取数

采集线程与主线程通信的问题 - C++ Builder / Windows SDK/API
现在写一个数据采集程序,不断从采集卡读取数据并在窗口的TChart中画图。
由于以前没用过线程,现提出一个思路,看看对不对。

分别建立采集、画图线程,同时启动。
采集线程不断从采集卡读取数据,每次读完向画图线程发一个消息告诉它画一个点。
画图线程处于循环等待状态,收到消息并执行后继续等待。由于采集一个数据的时间明显大于画图的时间,所以画图线程一般都比较空闲,只需要被动等待就行了,在收到下一个消息之前肯定能完成上次的操作。

现在比较困惑用WINAPI和TThread哪个比较好,因为画图线程实际上也许不用写到专门的线程里,只是作为整个窗口线程的一部分接收信息就行了(不知能否用事件响应?),用TThread是不是对VCL组件操作更加方便。关键应该在于采集线程与画图线程的通信的方式,在资料里看到很多但说的都比较模糊,不知道该采取那种思路。

[解决办法]
TThread封装了TEvent比较方便线程同步另外可以用TThread的同步方法直接操作窗口VCL控件
[解决办法]
当然是用TThread会比较方便```

如果对速度要求不是特别苛刻,建议采集和画图做进同一个线程里比较好些
[解决办法]
我对TChart的速度有怀疑,点多了可能速度会降下来。
我的画图做到OnTimer里面。每秒钟最多响应若干次,每次响应时检查数据是否更新,如果更新直接退出。
[解决办法]
WINAPI和TThread是一样的,你也可以自己封装WINAPI形成一个类。然后PostThreadMessage。用消息也可以。

热点排行