我要做的是数据从USB采集二维数据,实时显示在PICBOX上。
由于要求实时显示曲线,同时对USB数据采集DLL速度较慢,采用了多线程。
有两个问题请高手给个思路即可。
1、多线程如何设计,数据采集采用一个线程,那么画图需要另外增加一个线程么?
2、关于多线程数据访问的问题。数据采集存放在BUFFER1中,而实时显示的数据应该是BUFFER2中。数据采集后(调用dll)将数据存放入BUFFER1,如果buffer1中的数据增加将增加的数据处理后存入buffer2,同时将buffer2中新增加的数据通过画线画在picbox上。
这种情况如何实现呢?
我在设计时设计了一个窗口基类,能在这个基类中添加一个不断扫描数据后显示数据变化的线程么?有无必要?对性能有无影响。
由于要求实时显示曲线,同时对USB数据采集DLL速度较慢,采用了多线程。
有两个问题请高手给个思路即可。
1、多线程如何设计,数据采集采用一个线程,那么画图需要另外增加一个线程么?
2、关于多线程数据访问的问题。数据采集存放在BUFFER1中,而实时显示的数据应该是BUFFER2中。数据采集后(调用dll)将数据存放入BUFFER1,如果buffer1中的数据增加将增加的数据处理后存入buffer2,同时将buffer2中新增加的数据通过画线画在picbox上。
这种情况如何实现呢?
我在设计时设计了一个窗口基类,能在这个基类中添加一个不断扫描数据后显示数据变化的线程么?有无必要?对性能有无影响。
怎么能实现当数据增加时能将相对应的曲线画出呢?
arraylist有什么好处?
由于在子线程中执行时将数据缓冲区设置成了静态的,
那么在主程序中怎么检测静态数据变化,而不影响UI操作呢?其实你不用在UI线程去监测数据变化,可以用工作线程去监测,等数据来了,然后处理完后,存入buffer中,最后告知UI线程去更新显示。