cpubbs 发表于 2004-11-7 03:27:00

多线程请教[转贴]

多线程请教我想把采集、显示、存盘分别放入三个线程,采集是主线程,其他放入辅助线程。
每当有100点是刷一次屏,每当到达缓冲区一半时存一次盘,假设我的Buffer设
的时10000,我该如何设另外两个线程?Daq函数用哪个好一点?回复:多线程请教把采集放在次线程就可以了,保存数据也可以在采集线程中同时完成,主线程用来显示波形,当
你的采样速率不同时,缓冲的长度要改变一下可能会好一些回复:多线程请教在多线程中最好用环形缓冲的模式采集数据,便于两个线程传递数据

枫之悠然 发表于 2004-11-8 03:46:24

<P>需要了解你的采集机制。通常采集卡定时向上位机传送数据块,上位机通过中断信号接收数据块,如果存盘过程在采集线程中完成,即采集一次存盘一次,必须保证两次采集之间有足够的时间用于存盘操作,以保证采集数据不至丢失;如果采样频率很高,存盘数据量很大的情况下可考虑使用单独的存盘线程及相应的大缓存。采集的核心是数据不能丢失,如果必要可以进行抽点显示,以保证采集、存盘线程拥有足够的CPU时间片。</P>
<P>低版CVI没有专门的多线程函数库,但可以使用WINDOWS SDK中的相关函数,多线程函数原形在WINBASE.H中,导入库为KERNEL32.LIB。在创建多线程时只要INCLUDE&lt;WINDOWS.H&gt;即可,与SEED资源用法相同。</P>
<P>以下建立线程及暂停、继续执行线程、设置线程优先级函数名:
CreateThread
SuspendThread
ResumeThread
SetThreadPriority(可设置从最低-15到最高+15的7档优先级)
线程间通讯可查WINDOWS SDK相应资料。</P>
<P>                                                                     baker1209cn@yahoo.com.cn</P>


wygongda 发表于 2005-1-18 03:50:41

<P>请问:环形缓冲模式指的是什么?</P><P>是不是指线程安全队列,用于采集数据的缓冲。</P><P>可不可以采集用次线程,在此线程中将采样数据写入线程安全队列,显示和存盘同在另一个次线程,从线程安全队列中取数来显示和存盘。主线程是不是不要有循环处理的操作,以免影响控件消息的传递和处理。</P><P>请教!</P>

aiyanyan19 发表于 2005-1-27 18:37:47

<P>我想知道在lapview里有没有线程的概念呀!!</P><P>我想利用datasocket发数据的同时在另一端有一个可以接收和存盘的同步,是不是可以给多用户发同一条信息。</P>

fjczd 发表于 2008-8-18 14:24:26

原帖由 cpubbs 于 2004-11-7 03:27 发表 http://www.cpubbs.com/bbs/images/common/back.gif
多线程请教我想把采集、显示、存盘分别放入三个线程,采集是主线程,其他放入辅助线程。
每当有100点是刷一次屏,每当到达缓冲区一半时存一次盘,假设我的Buffer设
的时10000,我该如何设另外两个线程?Daq函数用 ...
老大,这个问题解决了么??
我现在对多线程也遇到了你那时的困难,你是怎么解决的啊
给大家讲讲吧
页: [1]
查看完整版本: 多线程请教[转贴]