我要做的是数据从USB采集二维数据,实时显示在PICBOX上。  
由于要求实时显示曲线,同时对USB数据采集DLL速度较慢,采用了多线程。  
有两个问题请高手给个思路即可。  
1、多线程如何设计,数据采集采用一个线程,那么画图需要另外增加一个线程么?  
2、关于多线程数据访问的问题。数据采集存放在BUFFER1中,而实时显示的数据应该是BUFFER2中。数据采集后(调用dll)将数据存放入BUFFER1,如果buffer1中的数据增加将增加的数据处理后存入buffer2,同时将buffer2中新增加的数据通过画线画在picbox上。  
     这种情况如何实现呢?  
     我在设计时设计了一个窗口基类,能在这个基类中添加一个不断扫描数据后显示数据变化的线程么?有无必要?对性能有无影响。

解决方案 »

  1.   

    to 1、多线程如何设计,数据采集采用一个线程,那么画图需要另外增加一个线程么?应该可以不用,用callback,让主线程去画。
      

  2.   

    to 2、关于多线程数据访问的问题。数据采集存放在BUFFER1中,而实时显示的数据应该是BUFFER2中。数据采集后(调用dll)将数据存放入 BUFFER1,如果buffer1中的数据增加将增加的数据处理后存入buffer2,同时将buffer2中新增加的数据通过画线画在picbox 上。用ArrayList来存放。
      

  3.   

    我得数据都是用arraylist存放的,
    怎么能实现当数据增加时能将相对应的曲线画出呢?
    arraylist有什么好处?
      

  4.   

    to 如何监视静态数据的变化呢?
    由于在子线程中执行时将数据缓冲区设置成了静态的,
    那么在主程序中怎么检测静态数据变化,而不影响UI操作呢?其实你不用在UI线程去监测数据变化,可以用工作线程去监测,等数据来了,然后处理完后,存入buffer中,最后告知UI线程去更新显示。